01.MyBatis入門

MyBatis入門:java

第一天接觸Mybatis,總結一下入門案例的流程:mysql

首先導入Mybatis的jar包和數據庫的驅動包spring

1.建立數據表和實體類sql

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,包含數據庫信息和映射文件信息,代碼以下:apache

 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.寫一個測試類,進行增刪改查的測試,步驟以下:tomcat

  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的入門程序。session

相關文章
相關標籤/搜索