<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 結果集映射 ```java /** * 演示如何將數據庫查詢結果映射到java對象上 * * @author xiandafu */ public class S2MappingSample { SQLManager sqlManager; UserMapper mapper =null; public S2MappingSample(SQLManager sqlManager) { this.sqlManager = sqlManager; mapper = sqlManager.getMapper(UserMapper.class); } public static void main(String[] args) throws Exception { SQLManager sqlManager = SampleHelper.getSqlManager(); S2MappingSample mappingSample = new S2MappingSample(sqlManager); mappingSample.column(); mappingSample.toMap(); mappingSample.view(); mappingSample.mappingProvider(); mappingSample.jsonConfig(); mappingSample.autoMapping(); mappingSample.myAttributeAnnotation(); } /** * 使用@Column注解,或者按照NameConversion來自動映射 */ public void column() { MyUser user = sqlManager.unique(MyUser.class, 1); } /** * 可以把查詢結果轉化成Map,在java中,注意,濫用map作為也業務對象是非常糟糕設計 */ public void toMap() { SQLReady sqlReady = new SQLReady("select id,name from user"); List<Map> list = sqlManager.execute(sqlReady, Map.class); } /** * */ public void view() { //映射所有列 TestUser user = sqlManager.unique(TestUser.class, 1); //映射只有一個KeyInfo標注的屬性,本例子中department屬性不在查詢結果范圍里 TestUser keyInfo = sqlManager.viewType(TestUser.KeyInfo.class).unique(TestUser.class, 1); } /** * 使用額外的映射類來映射 */ public void mappingProvider() { //運行時刻指定一個映射類 TestUser testUser = sqlManager.rowMapper(MyRowMapper.class).unique(TestUser2.class, 1); //使用@RowProvider注解為類指定一個Mapper,這個更常用 TestUser2 testUser2 = sqlManager.unique(TestUser2.class, 1); } /** * 使用json 配置來映射,類似mybatis的xml配置 */ public void jsonConfig() { String sql = "select d.id id,d.name name ,u.id u_id,u.name u_name " + " from department d join user u on d.id=u.department_id where d.id=?"; Integer deptId = 1; SQLReady ready = new SQLReady(sql,new Object[]{deptId}); List<DepartmentInfo> list = sqlManager.execute(ready,DepartmentInfo.class); System.out.println(list.toString()); } /** * 使用json 配置來映射,類似mybatis的xml配置 */ public void autoMapping() { List<MyUserView> list = mapper.allUserView(); System.out.println(list); } /** * 自定義一個屬性注解Base64,用于編碼和解碼屬性字段 */ public void myAttributeAnnotation(){ UserData userData = new UserData(); userData.setName("123456"); sqlManager.insert(userData); UserData data = sqlManager.unique(UserData.class,userData.getId()); System.out.println("user name "+data.getName()); UserEntity entity = sqlManager.unique(UserEntity.class,userData.getId()); System.out.println("db value "+entity.getName()); } /** * 演示使用Column 注解映射java屬性與表列名, */ @Data @Table(name="user") public static class MyUser { @Column("id") @AutoID Integer myId; @Column("name") String myName; } @Data @Table(name="user") public static class TestUser { public static interface KeyInfo { } @Column("id") @AutoID @View(KeyInfo.class) Integer myId; @Column("name") @View(KeyInfo.class) String myName; Integer departmentId; } @RowProvider(MyRowMapper.class) public static class TestUser2 extends TestUser { } /** * 使用json配置來映射,如果映射配置過長,建議放到文件中,使用resource說明配置路徑 * */ @Data @ResultProvider(JsonConfigMapper.class) // @JsonMapper( // "{'id':'id','name':'name','users':{'id':'u_id','name':'u_name'}}") @org.beetl.sql.annotation.entity.JsonMapper(resource ="user.departmentJsonMapping") public static class DepartmentInfo { Integer id; String name; List<UserInfo> users; } @Data public static class UserInfo { Integer id; String name; } /** * 如果數據庫查詢的結果與類定義一致,也可以使用AutoJsonMapper */ @Data @ResultProvider(AutoJsonMapper.class) public static class MyUserView { Integer id; String name; DepartmentEntity dept; } public static class MyRowMapper implements RowMapper<TestUser> { @Override public TestUser mapRow(ExecuteContext ctx, Object obj, ResultSet rs, int rowNum, Annotation config) throws SQLException { TestUser testUser = (TestUser) obj; testUser.setMyName(testUser.getMyName() + "-" + System.currentTimeMillis()); return testUser; } } @Table(name="user") @Data public static class UserData{ @AutoID Integer id; @Base64 String name; } @Retention(RetentionPolicy.RUNTIME) @Target(value = {ElementType.METHOD, ElementType.FIELD}) @Builder(Base64Convert.class) public static @interface Base64 { } /** * 自定義一個注解,實現把屬性字段加密存入數據庫,取出的時候解密 */ public static class Base64Convert implements AttributeConvert { Charset utf8 = Charset.forName("UTF-8"); public Object toDb(ExecuteContext ctx, Class cls, String name, Object dbValue) { String value= (String) BeanKit.getBeanProperty(dbValue,name); byte[] bs = java.util.Base64.getEncoder().encode(value.getBytes(utf8)); return new String(bs,utf8); } public Object toAttr(ExecuteContext ctx, Class cls, String name, ResultSet rs, int index) throws SQLException { String value = rs.getString(index); return new String(java.util.Base64.getDecoder().decode(value),utf8); } } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看