01.MyBatis入门

穿精又带淫゛_ 提交于 2020-02-29 17:59:37

MyBatis入门:

第一天接触Mybatis,总结一下入门案例的流程:

首先导入Mybatis的jar包和数据库的驱动包

1.创建数据表和实体类

2.创建一个表和实体类映射的xml配置文件,具体配置如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE mapper
 3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5   <!-- namespace是映射文件的一个唯一标识,用来定位是哪个映射文件 -->
 6 <mapper namespace="com.offcn.entity.personMapper">
 7     <!-- id是一条sql语句的唯一标识,parameterType是sql语句中的参数类型 ,resultType是sql语句将要返回的结果的类型 -->
 8     <!-- 如果输入的类型是基本数据类型(八种基本数据类型 + string)则#{xxx}可以随意写,但是为了规范最好不要,如果不是基本数据类型则必须写实体类中的字段名 -->
 9   <select id="selectPersonById" parameterType="int" resultType="com.offcn.entity.Person">
10     select * from Person where id = #{id}
11   </select>
12   <!-- sql语句后边不加分号 -->
13   
14   <insert id="insertPerson" parameterType="com.offcn.entity.Person">
15       insert into Person (id,name,bir,address) value (#{id},#{name},#{bir},#{address})
16   </insert>
17   
18   <delete id="deletePersonById" parameterType="int">
19       delete from Person where id = #{id}
20   </delete>
21   
22   <update id="updatePerson" parameterType="com.offcn.entity.Person">
23       update person set name=#{name},bir=#{bir},address=#{address} where id = #{id}
24   </update>
25   
26   <select id="selectPerson" resultType="com.offcn.entity.Person">
27       select * from person
28   </select>
29   
30 </mapper>

3.编写全局配置文件conf.xml,包含数据库信息和映射文件信息,代码如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration
 3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6     <!-- 环境的配置,可以配置多个,可以通过default该换id定位使用哪个环境,也可以通过 sessionFactory的第二个参数设置-->
 7   <environments default="development">
 8     <environment id="development">
 9         <!-- 配置事物的提交方式,一共有两种
10             1.JDBC:利用JDBC的方式处理事务,需要手动提交(commit,rollback,close)
11             2.MANAGED:将事务由其他组件托管(spring,jobss),默认会关闭连接,如果想要自动关闭连接需要配置一个属性
12              <property name="driver" value="false"/>
13          -->
14       <transactionManager type="JDBC"/>   <!-- 后边的斜杠不能省略 -->
15      
16       <!-- 数据源格式类型:
17           1.POOLED:数据连接池模式
18           2.UNPOOLED:传统的jdbc模式,每次都需要自己手动创建关闭
19           3.JNDI:从tomcat中获取一个内置的数据库连接池
20        -->
21       <dataSource type="POOLED">
22         <property name="driver" value="com.mysql.jdbc.Driver"/>
23         <property name="url" value="jdbc:mysql://localhost:3306/person?serviceTimeout=UTC"/>
24         <property name="username" value="root"/>
25         <property name="password" value="root"/>
26       </dataSource>
27     </environment>
28   </environments>
29   <mappers>
30     <mapper resource="com/offcn/entity/personMapper.xml"/>
31   </mappers>
32 </configuration>

3.写一个测试类,进行增删改查的测试,步骤如下:

  1 package com.offcn.entity;
  2 
  3 import java.io.IOException;
  4 import java.io.Reader;
  5 import java.util.Date;
  6 import java.util.List;
  7 
  8 import org.apache.ibatis.io.Resources;
  9 import org.apache.ibatis.session.SqlSession;
 10 import org.apache.ibatis.session.SqlSessionFactory;
 11 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 12 
 13 public class Test {
 14     public static void main(String[] args) throws IOException {
 15     //    selectPerosnById();
 16         //insertPerson();
 17         //deletePersonById();
 18         //updatePerson();
 19         selectPerson();
 20     }
 21     //根据id查询
 22     public static void selectPerosnById() throws IOException {
 23         //读取conf.xml 配置文件
 24         Reader reader = Resources.getResourceAsReader("conf.xml");
 25         //创建sqlSessionFactory
 26         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
 27         //创建session---> connection
 28         SqlSession session = sessionFactory.openSession();
 29         //statement ---> statement
 30         String sql = "com.offcn.entity.personMapper." + "selectPersonById";
 31         //查询一条数据
 32         Person person = session.selectOne(sql,1);
 33         //提交事务
 34         session.commit();
 35         System.out.println(person);
 36         //关闭连接
 37         session.close();
 38         
 39     }
 40     //增加一条数据
 41     public static void insertPerson() throws IOException {
 42         //读取conf.xml文件
 43         Reader reader = Resources.getResourceAsReader("conf.xml");
 44         //创建一个sqlSessionFactory
 45         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
 46         //创建一个session对象
 47         SqlSession session = sessionFactory.openSession();
 48         //定位sql语句
 49         String statement = "com.offcn.entity.personMapper." + "insertPerson";
 50         //执行sql语句
 51         Person person = new Person("李四",new Date(),"上海普陀");
 52         int count = session.insert(statement,person);
 53         //提交事务
 54         session.commit();
 55         System.out.println("增加"+count+"条数据");
 56         //关闭连接
 57         session.close();
 58     }
 59     //根据id删除一条数据
 60     public static void deletePersonById() throws IOException {
 61         //读取conf.xml文件
 62         Reader reader = Resources.getResourceAsReader("conf.xml");
 63         //获取sqlSessionFactory
 64         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
 65         //获取session对象
 66         SqlSession session = sessionFactory.openSession();
 67         //定位sql语句
 68         String statement = "com.offcn.entity.personMapper."+"deletePersonById";
 69         //执行sql语句
 70         int count = session.delete(statement,2);
 71         //提交事务
 72         session.commit();
 73         System.out.println("删除"+count+"条数据");
 74         //关闭连接
 75         session.close();
 76     }
 77     //更改数据
 78     public static void updatePerson() throws IOException {
 79         //读取conf.xml
 80         Reader reader = Resources.getResourceAsReader("conf.xml");
 81         //创建sqlSessionFactory
 82         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
 83         //创建sqlsession对象
 84         SqlSession session = sessionFactory.openSession();
 85         //定位sql
 86         String statement = "com.offcn.entity.personMapper." + "updatePerson";
 87         //执行sql语句
 88         Person person = new Person();
 89         person.setName("王五");
 90         person.setBir(new Date());
 91         person.setAddress("南京");
 92         person.setId(1);
 93         int count = session.update(statement,person);
 94         //提交事务
 95         session.commit();
 96         System.out.println("更改" + count +"条数据成功");
 97         //关闭连接
 98         session.close();
 99     }
100     //查询所有数据
101     public static void selectPerson() throws IOException {
102         //读取conf.xml
103         Reader reader = Resources.getResourceAsReader("conf.xml");
104         //创建sqlSessionFactory
105         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
106         //创建sqlsession对象
107         SqlSession session = sessionFactory.openSession();
108         //定位sql
109         String statement = "com.offcn.entity.personMapper." + "selectPerson";
110         //执行sql语句
111         List<Person> persons = session.selectList(statement);
112         //提交事务
113         session.commit();
114         for (Person person : persons) {
115             System.out.println(person);
116         }
117         
118         //关闭连接
119         session.close();
120     }
121 }

到此就完成了一个Mybatis的入门程序。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!