<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,  comments - 11,  trackbacks - 0

    > 準備
    以MySQL為例,執行下面的sql建立數據表
    CREATE TABLE `t_user` (                
            `id` int(11) NOT NULL,               
            `name` varchar(50) DEFAULT NULL,     
            `sex` char(4) DEFAULT NULL,          
            `age` int(11) DEFAULT NULL,          
            `career` varchar(100) DEFAULT NULL,  
            PRIMARY KEY (`id`)                   
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    > 引入jar或maven依賴,需要jar包
    gerald-jorm-1.0.5.jar 最新版本下載:http://sourceforge.net/projects/javaclub/files
    commons-logging-1.1.1.jar
    log4j-1.2.14.jar
    mysql-connector-java-5.1.6.jar
    javassist-3.11.0.GA.jar 或 cglib-nodep-2.2.2.jar (根據實際情況選擇性加入)


    > 配置文件
    在你的java工程的classpath下建立config.properties和jdbc.cfg.xml文件
    config.properties內容:
    # 下面路徑可以根據實際情況指定,為相對classpath的路徑地址
    jdbc.config.path=jdbc.cfg.xml

    jdbc.cfg.xml內容:
    <?xml version='1.0' encoding="UTF-8"?>
    <jdbc-configuration>

      <constant name="show_sql" value="true" />
      <constant name="jdbc.batch_size" value="600" />
      <constant name="bytecode.provider" value="cglib" />
     
      <connections default="simple">
     
        <connection name="simple">
          <property name="connection.implementation">org.javaclub.jorm.jdbc.connection.impl.SimpleConnection</property>
          <property name="connection.dialect">MySQLDialect</property>
          <property name="connection.driver">com.mysql.jdbc.Driver</property>
          <property name="connection.jdbcurl">jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=UTF-8</property>
          <property name="connection.database">test</property>
          <property name="connection.username">root</property>
          <property name="connection.password">root</property>
        </connection>

        <connection name="c3p0">
          <property name="connection.implementation">org.javaclub.jorm.jdbc.connection.impl.PooledConnection</property>
          <property name="connection.dialect">MySQLDialect</property>
          <property name="connection.driver">com.mysql.jdbc.Driver</property>
          <property name="connection.jdbcurl">jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=UTF-8</property>
          <property name="connection.database">test</property>
          <property name="connection.username">root</property>
          <property name="connection.password">root</property>
          <property name="connection.pool.min">1</property>
          <property name="connection.pool.max">8</property>
          <property name="connection.test.sql">select 1</property>
        </connection>
        
      </connections>

    </jdbc-configuration>


    > 實體類User.java
    @PK(value = "id")
    @Entity(table="t_user")
    public class User {
        
        @Id
        private int id;

        private String name;

        private String sex;

        private Integer age;

        private String career;
        
        @NoColumn
        private int kvalue;
        
        public User() {
            super();
        }

        public User(String name, String sex, Integer age, String career) {
            super();
            this.name = name;
            this.sex = sex;
            this.age = age;
            this.career = career;
        }

        public User(Integer id, String name, String sex, Integer age, String career) {
            super();
            this.id = id;
            this.name = name;
            this.sex = sex;
            this.age = age;
            this.career = career;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getSex() {
            return sex;
        }

        public void setSex(String sex) {
            this.sex = sex;
        }

        public Integer getAge() {
            return age;
        }

        public void setAge(Integer age) {
            this.age = age;
        }

        public String getCareer() {
            return career;
        }

        public void setCareer(String career) {
            this.career = career;
        }

        public int getKvalue() {
            return kvalue;
        }

        public void setKvalue(int kvalue) {
            this.kvalue = kvalue;
        }

        public String toString() {
            StringBuffer sb = new StringBuffer();
            sb.append("[" + id + ", " + name + ", " + sex + ", " + age + ", " + career + "]");
            return sb.toString();
        }

    }

    這里數據庫字段和java實體類User的屬性在命名上是一致的,如果不一致,比如如果表創建sql為:
    CREATE TABLE `t_user` (                
            `user_id` int(11) NOT NULL,               
            `user_name` varchar(50) DEFAULT NULL,     
            `sex` char(4) DEFAULT NULL,          
            `col_age` int(11) DEFAULT NULL,          
            `career_job` varchar(100) DEFAULT NULL,  
            PRIMARY KEY (`id`)                   
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    那么對應的實體User應該寫成:
    @PK(value = "id")
    @Entity(table="t_user")
    public class User {
        
        @Id
        @Column("user_id")
        private int id;

        @Column("user_name")
        private String name;
            
        // 與數據庫字段命名一致,可以不指定@Column
        private String sex;

        @Column("col_age")
        private Integer age;

        @Column("career_job")
        private String career;
        
        @NoColumn
        private int kvalue;
        
        public User() {
            super();
        }

        public User(String name, String sex, Integer age, String career) {
            super();
            this.name = name;
            this.sex = sex;
            this.age = age;
            this.career = career;
        }

        public User(Integer id, String name, String sex, Integer age, String career) {
            super();
            this.id = id;
            this.name = name;
            this.sex = sex;
            this.age = age;
            this.career = career;
        }

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getSex() {
            return sex;
        }

        public void setSex(String sex) {
            this.sex = sex;
        }

        public Integer getAge() {
            return age;
        }

        public void setAge(Integer age) {
            this.age = age;
        }

        public String getCareer() {
            return career;
        }

        public void setCareer(String career) {
            this.career = career;
        }

        public int getKvalue() {
            return kvalue;
        }

        public void setKvalue(int kvalue) {
            this.kvalue = kvalue;
        }

        public String toString() {
            StringBuffer sb = new StringBuffer();
            sb.append("[" + id + ", " + name + ", " + sex + ", " + age + ", " + career + "]");
            return sb.toString();
        }

    }


    > 對User的增刪查改,UserCrudTest.java,記得引入junit-4.8.2.jar
    public class UserCrudTest {

        static Session session;
        
        @BeforeClass
        public static void before() {
            session = Jorm.getSession();
        }
        
        @AfterClass
        public static void after() {
            Jorm.free();
        }
        
        @Test
        public void save_user() {
            session.clean(User.class);
            User user = null;
            for (int i = 0; i < 600; i++) {
                String sex = (i % 2 == 0 ? "男" : "女");
                user = new User(Strings.fixed(5), sex, Numbers.random(98), Strings.random(8));
                session.save(user);
            }
        }
        
        @Test // 批量保存
        public void batch_save_user() {
            session.clean(User.class);
            JdbcBatcher batcher = session.createBatcher();
            User user = null;
            for (int i = 0; i < 600; i++) {
                String sex = (i % 2 == 0 ? "男" : "女");
                user = new User(Strings.fixed(5), sex, Numbers.random(98), Strings.random(8));
                batcher.save(user);
            }
            batcher.execute();
        }
        
        @Test
        public void loadUser() {
            User user = session.read(User.class, 1);
            // 這里user是一個代理對象,因為@Entity(table="t_user", lazy = true)
            System.out.println(user.getCareer());// 發出查詢sql
        }
        
        @Test
        public void deletUser() {
            User user = session.read(User.class, 1);
            if(null != user) {
                session.delete(user);
            }
            user = session.read(User.class, 1);
            System.out.println(user);
        }
        
        @Test
        public void test_update_proxy() {
            
            User u;
            u = session.read(User.class, 2);
            Assert.assertNotNull(u);
            Assert.assertTrue(u instanceof JormProxy);
            
            u.setName("Gerald.Chen");
            session.update(u);
            System.out.println(u.getName());
            u = session.read(User.class, 2);
            Assert.assertTrue("Gerald.Chen".equals(u.getName()));
        }
        
        @Test
        public void queryUser() {
            SqlParams<User> params = new SqlParams<User>();
            params.setObjectClass(User.class);
            params.setFirstResult(8);
            params.setMaxResults(20);
            List<User> users = session.list(params);
            System.out.println(users.size());
            System.out.println(users);
        }
        
    }

    posted on 2011-09-21 18:42 jadmin 閱讀(1413) 評論(5)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 日韩精品无码一区二区三区免费 | 久久夜色精品国产亚洲| 亚洲色在线无码国产精品不卡| 久久精品毛片免费观看| 亚洲黄色在线播放| 精品福利一区二区三区免费视频| 亚洲视频一区在线| 一二三四在线播放免费观看中文版视频 | 亚洲三级在线播放| 亚色九九九全国免费视频| 亚洲最新中文字幕| 免费视频淫片aa毛片| 搜日本一区二区三区免费高清视频| 亚洲国产精品综合久久一线| 久久一区二区三区免费| 亚洲色成人WWW永久网站| 无码国产精品一区二区免费式芒果 | 亚洲色偷偷综合亚洲AV伊人| 青青操免费在线观看| 亚洲精选在线观看| 搡女人免费视频大全| 国产成人精品亚洲一区| 亚洲色大成网站WWW久久九九| 1000部啪啪未满十八勿入免费 | 真人无码作爱免费视频| 亚洲人成无码www久久久| 久草免费福利资源站| 亚洲欧美中文日韩视频| 2048亚洲精品国产| 在线观看永久免费| 免费人成网站永久| 久久水蜜桃亚洲av无码精品麻豆| 四虎永久在线精品免费网址| 一区二区免费在线观看| 亚洲人成在线电影| 亚洲?v女人的天堂在线观看| 日韩在线永久免费播放| 狠狠入ady亚洲精品| 亚洲嫩草影院久久精品| 四虎影视永久免费观看| 91人成网站色www免费下载|