永利澳门游戏网址304:01_mybatis入门,

01_mybatis入门,

率先呢,大家用mybatis断定涉及到mybatis的引用,其次,mybatis是用来三番五次数据库的,所以又提到到对相应数据库的引用,所以最基本的大家要导入七个jar包,那边数据库以mysql为例。引进如下多个依据(maven用法),对应多个jar包,分别提供了mabatis服务,连接mysql数据库服务。
 

<!– Mybatis依赖 –> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.5</version> </dependency>   <!– MySQL依赖 –> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> <scope>runtime</scope> </dependency>

 

mybatis-3.2.5.jar mysql-connector-java-5.1.38.jar

然后,大家就关乎到mybatis的配置文件,未来的风行框架大非常多都会将配备职业交给xml在动用时分析,mybatis也不例外(中期整合spring后,就不会有单独的mybatis配置文件,不意味未有,只是整个的交给了spring的布局文件去布署)。废话欠大多,先上配置文件。顺便提一下,配置文件随你放项目哪,只要你用的时候找到呼应路线,日常学习时放src下就能够(maven项目以来,放java下),那样读取时只须要配置文件名就足以找到。当然,数据库的布局音讯对应和煦的嘞。
 

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!– 连接数据库 –> <environments default="development"> <environment id="development"> <!– 指定事务管理类型,JDBC直接简单使用JDBC的提交和回滚设置 –> <transactionManager type="JDBC" /> <!– 数据源配置,POOLED是JDBC连接对象的数据源连接池的实现 –> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments>   <!– 配置持久化映射文件的路径,通俗讲就是完成mapper接口或mapper xml文件在mybatis的注册 –> <mappers> <mapper resource="com/jlb/mapper/PersonMapper.xml" /> </mappers> </configuration>

永利澳门游戏网址304 1  
然后就是大家的持久化类映射文件(mapper映射文件)了,两种艺术,一种基于xml,一种基于注明写接口,还应该有一种就是xml结合接口了,可是接口便是纯粹的接口,和经常的接口同样,但没有须求完结类,因为类名和mapper映射文件namespace对应的话,就已经自行绑定了,方法名对应mapper映射文件内的各类id,也会活动去匹配,只怕说,这种方法才总算mybatis真正的魔力所在吧。那边因为是入门嘛,只依照第一种格局,以自家那边所用的例子为例,写了三个PersonMapper.xml,也正是下边配置文件注册的丰富映射文件。
该映射文件完结了简约crud的操作(为了笔记的简洁性以及代码的可读性,关于代码的演讲,都有对应的注释,间接看代码就是),全部来讲,入门算是够了。具体有个别名词的讲解不放在这里做。

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.jlb.mapper.PersonMapper"> <!– 查询一个人 –> <select id="selectOnePerson" resultType="com.jlb.domain.Person"> select * from person where id = #{id} </select>   <!– 查询所有人 –> <select id="selectAllPerson" resultType="com.jlb.domain.Person"> select * from person </select>   <!– 删除一个人 –> <delete id="deleteOnePerson"> delete from person where id = #{id} </delete>   <!– 新增一个人 –> <insert id="insertOnePerson"> insert into person(name,age) values(#{name},#{age}) </insert>   <!– 修改一个人 –> <update id="updateOnePerson"> update person set name = #{name} where id = #{id} </update> </mapper>

 
大家看看具体操作,先把布置文件放到流里,然后经过SqlSessionFactory创制连锁东西并透过它创立大家根本实践体SqlSession对象,mybatis对相应操作都有相应的管理,查三个,查多少个,新扩充,修改,删除都有。然而做QL时没有须求commit,做DML时必需试行commit。(那边的代码用了Junit单元测验的格局,有局地看不懂,去查看特意的Junit笔记)

public class TestPerson {   private SqlSession session; private static SqlSessionFactory sqlSessionFactory;   @BeforeClass public static void testBeforeClass() throws Exception{ String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); }   @Before public void testBefore() { try { session = sqlSessionFactory.openSession(); } catch (Exception e) { e.printStackTrace(); } }   @After public void testAfter() { session.close(); }   /* * 查询一个人 */ @Test public void testselectOnePerson() { try { Person person = session.selectOne("com.jlb.mapper.PersonMapper.selectOnePerson", 1); System.out.println(person); } catch (Exception e) { e.printStackTrace(); } }   /* * 查询所有人 */ @Test public void testselectAllPerson() { try { List<Person> list = session.selectList("com.jlb.mapper.PersonMapper.selectAllPerson"); for (Object object : list) { System.out.println(object); } session.close(); } catch (Exception e) { e.printStackTrace(); } }   /* * 新增一个人 */ @Test public void testinsertOnePerson() { try { Person person = new Person(); person.setName("xiaoming"); person.setAge(22); int i = session.insert("com.jlb.mapper.PersonMapper.insertOnePerson", person); session.commit(); System.out.println(i); session.close(); } catch (Exception e) { e.printStackTrace(); } }   /* * 修改一个人 */ @Test public void testupdateOnePerson() { try { Person person = new Person(); person.setName("老莫"); person.setId(4); int i = session.insert("com.jlb.mapper.PersonMapper.updateOnePerson", person); session.commit(); System.out.println(i); session.close(); } catch (Exception e) { e.printStackTrace(); } }   /* * 修改一个人 */ @Test public void testdeleteOnePerson() { try { int i = session.delete("com.jlb.mapper.PersonMapper.deleteOnePerson", 3); System.out.println(i); session.commit(); session.close(); } catch (Exception e) { e.printStackTrace(); } }   }

  最后上Person类

public class Person implements Serializable {   private Integer id; private String name; private Integer age;   public Integer getId() { return id; }   public void setId(Integer id) { this.id = id; }   public String getName() { return name; }   public void setName(String name) { this.name = name; }   public Integer getAge() { return age; }   public void setAge(Integer age) { this.age = age; }   @Override public String toString() { return id + " " + name + " " + age; }   }

   
总括一下完整的操作进程,首先分明大家是在用mybatis开垦,是连接数据库的框架,那么mybatis的jar包和mysql的jar包必定要导入。其次mybatis的布局文件依靠xml,该配置文件的创导不能缺少。在来我们要拍卖哪张表,其对应实体类和呼应的映照文件有没有开创。末了在操作时有未有创造SqlSession对象,做对应管理,DML操作不要忘了commit。

首先呢,大家用mybatis确定涉及到mybatis的引用,其次,mybatis是用来连接数据库的,所以又涉嫌到对相应数据库的援用,所以…

率先呢,我们用mybatis料定涉及到mybatis的引用,其次,mybatis是用来连接数据库的,所以又提到到对相应数据库的援用,所以最大旨的大家要导入七个jar包,这边数据库以mysql为例。引进如下五个依据(maven用法),对应多少个jar包,分别提供了mabatis服务,连接mysql数据库服务。

 

<!– Mybatis依赖 –>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.5</version>
</dependency>
 
<!– MySQL依赖 –>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
<scope>runtime</scope>
</dependency>

 

mybatis-3.2.5.jar
mysql-connector-java-5.1.38.jar

下一场,大家就提到到mybatis的配备文件,未来的风行框架大比比较多都会将配置职业交给xml在动用时深入分析,mybatis也不例外(前期整合spring后,就不会有独立的mybatis配置文件,不意味未有,只是整个的交付了spring的配置文件去布置)。废话不好些个,先上配置文件。顺便提一下,配置文件随你放项目哪,只要您用的时候找到呼应路线,一般学习时放src下就能够(maven项目以来,放java下),那样读取时只要求陈设文件名就能够找到。当然,数据库的配置音讯对应友善的嘞。

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!– 连接数据库 –>
<environments default="development">
<environment id="development">
<!– 指定事务管理类型,JDBC直接简单使用JDBC的提交和回滚设置 –>
<transactionManager type="JDBC" />
<!– 数据源配置,POOLED是JDBC连接对象的数据源连接池的实现 –>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
 
<!– 配置持久化映射文件的路径,通俗讲就是完成mapper接口或mapper xml文件在mybatis的注册 –>
<mappers>
<mapper resource="com/jlb/mapper/PersonMapper.xml" />
</mappers>
</configuration>

 

然后就是大家的长久化类映射文件(mapper映射文件)了,两种方式,一种基于xml,一种基于阐明写接口,还有一种正是xml结合接口了,不过接口正是纯粹的接口,和平日性的接口同样,但没有需求贯彻类,因为类名和mapper映射文件namespace对应的话,就早就自行绑定了,方法名对应mapper映射文件内的各样id,也会活动去相称,可能说,这种办法才算是mybatis真正的吸引力所在吧。这边因为是入门嘛,只依据第一种方法,以自身那边所用的例子为例,写了一个PersonMapper.xml,也正是上面配置文件注册的要命映射文件。

该映射文件完结了简约crud的操作(为了笔记的简洁性以及代码的可读性,关于代码的解释,都有相应的注释,直接看代码便是),全部来讲,入门算是够了。具体有个别名词的分解不放在这里做。

发表评论

电子邮件地址不会被公开。 必填项已用*标注