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