標籤:
搭建項目
一:lib(關於架構的jar包和資料庫驅動的jar包)
1,第一步:先把mybatis的核心類庫放進lib裡
2,第二步:匯入第三方類庫(在lib裡)。mybatis的核心類庫在運行時還依賴一些第三方類庫
3,第三步:匯入串連資料庫驅動jar包
二:建立mybatis的設定檔
1,第一步:先建立實體包,對照著表結構把實體類寫出來。封裝好就是寫get,set方法------不像hibernate,可以自動的將表名欄位名與實體類相對應,不用自己手寫實體類與對應檔
2,第二步:建立xml檔案,檔案名稱可以隨便寫,這裡參考hibernate的規範寫法:mybatis.cfg.xml
不需要next,因為myeclipse沒有內建mybatis的文檔聲明
3,設定檔由四部分組成:
(1)配置日誌
(2)配置類型別名
把經常要用到的類設定別名,後面就可以使用別名,可簡化代碼---自訂實體類設定別名
(3)設定資料庫串連和交易管理員
(4)匯入對應檔
完整的設定檔如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 設定mtbatis的一些運行參數:日誌,是直接輸出到控制台上還是輸出到log4j檔案中 --><settings><!-- name不可以隨便寫,只能叫這個名字;value有好幾個選項這裡選擇向控制台輸出 --><setting name="logImpl" value="STDOUT_LOGGING"/></settings><!--設定類型別名:在執行sql語句的時候,如果不設定別名。每次在指定的時候都需要包名+類名,得寫的長 --><typeAliases><!-- type就是完整實體類名, --><tapeAlias type="cn.bdqn.mybatis.entity.User" alias="User"/></typeAliases><!--資料庫連接的屬性,不同的開發階段串連不同的資料庫開發階段——開發環境:串連程式員自己的資料庫測試階段——測試環境:串連測試資料庫上線運行——生產環境:串連正式資料庫裡邊可以寫多個environment--><environments default="dev"><!-- 開發環境 --><environment id="dev"><!-- 通過JDBC管理事務 --><transactionManager type="JDBC"/><!--不使用串連池 --><dataSource type="UNPOOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306:Test"/><property name="username" value="test"/><property name="password" value="123456"/></dataSource></environment></environments><!--sql對應檔的路徑--><mappers><!-- 引入要載入的sql檔案 --><mapper resource="cn/bdqn/mybatis/mapper/User.sql.xml"/></mappers></configuration>
編寫工具類
package cn.bdqn.mybatis.util;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil {private static SqlSessionFactory sessionFactory;static{try {//獲得用來載入設定檔的輸入資料流 字元流Reader reader=Resources.getResourceAsReader("mybatis.cfg.xml");//構建器,通過它SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();sessionFactory=builder.build(reader);} catch (Exception e) {e.printStackTrace();}}public static SqlSession getSqlSession(){return sessionFactory.openSession(true);}}
對應檔
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.bdqn.mybatis.mapper.UserMapper"><insert id="addUser" parameterType="User">INSERT INTO User(userName,password,email) VALUES(#{userName},#{password},#{email})</insert><select id="getUser" resultType="User">SELECT id,userName,password,email FROM User WHERE id=#{id}</select><select id="findUser" resultType="User">SELECT id,userName,password,email FROM User ORDER BY id;</select><update id="updateUser" parameterType="User">UPDATE User SET userName=#{userName},password=#{password},email=#{email} WHERE id=#{id}</update><delete id="delUser" >DELETE FROM User WHERE id=#{id}</delete></mapper>
mapper介面
package cn.bdqn.mybatis.mapper;import java.util.List;import cn.bdqn.mybatis.entity.User;//通過介面裡邊的抽象方法來調用對應的語句//介面對應對應檔----把SQL語句的命名空間設定成介面的完整類名//相當於原來dao層,我只需要定義dao介面,那具體的實作類別現在不用咱自己寫了,只需拿到mapper介面類即可 省了很多事,提高開發效率public interface UserMapper {public int addUser(User user);public User getUser(Integer id);public List<User> findUser();public int updateUser(User user);public void delUser(Integer id);}
測試類別
第一種調用sql語句的方法
//儲存一個使用者
int rows=session.insert("User.addUser",user);//根據id擷取一個使用者user=session.selectOne("User.getUser",2);
第二種最常用的調用sql語句的方法:定義一個mapper介面 mapper介面中,傳回值類型,參數,得相對應;方法名與sql語句id相一致
//先告訴session;後session根據mapper的class找到了命名空間
UserMapper mapper=session.getMapper(UserMapper.class);
int rows=mapper.addUser(user);
mybatis的基本配置:實體類、設定檔、對應檔、工具類 、mapper介面