Mybatis应用(一)应用步骤
一、mybatis概述:
0、MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,由谷歌托管,并且改名為MyBatis 。2013年11月遷移到Github。
? ? ? ?1、iBATIS一詞來源于“internet”和“abatis”的組合,是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)
MyBatis是支持普通SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數的手工設置以及對結果集的檢索封裝。MyBatis可以使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJO(Plain Old Java Objects,普通的Java對象)映射成數據庫中的記錄。
3、MyBatis作為持久層框架,其主要思想是將程序中的大量sql語句剝離出來,配置在配置文件中,實現sql的靈活配置。這樣做的好處是將sql與程序代碼分離,可以在不修改程序代碼的情況下,直接在配置文件中修改sql。
二、應用步驟:
1、添加jar包
【mybatis】
mybatis-3.1.1.jar ?下載地址:點擊打開鏈接
【Mysql驅動包】
mysql-connector-java-5.1.7-bin.jar ?下載地址:點擊打開鏈接
(相關資源我已上傳,如有需要自行下載)
2、建庫、建表
create database mybatis;use mybatis;CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT); INSERT INTO users(NAME, age) VALUES('Tom', 12); INSERT INTO users(NAME, age) VALUES('Jack', 11);
3、工程目錄
4、添加mybatis配置文件config.xml
<?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"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/mybatis" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments> </configuration>
5、定義表對應的實體類
public class User {private int id;private String name;private int age;//get,set方法 }6、定義操作users表的sql映射文件userMapper.xml <?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.rjxy.mybatis_test.test1.userMapper"> <select id="getUser" parameterType="int" resultType="com.rjxy.mybatis_test.test1.User">select * from users where id=#{id}</select> </mapper> 7、在conf.xml文件中注冊userMapper.xml文件 <mappers><mapper resource="com/rjxy/mybatis_test/test1/userMapper.xml"/> </mappers>
8、編寫測試代碼,執行定義好的select語句 public class Test {public static void main(String[] args) throws IOException {String resource = "conf.xml"; //加載mybatis的配置文件(它也加載關聯的映射文件)Reader reader = Resources.getResourceAsReader(resource); //構建sqlSession的工廠 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);//創建能執行映射文件中sql的sqlSessionSqlSession session = sessionFactory.openSession();//映射sql的標識字符串String statement = "com.rjxy.mybatis.bean.userMapper"+".selectUser";//執行查詢返回一個唯一user對象的sqlUser user = session.selectOne(statement, 1);System.out.println(user);} } 9、操作User表的CRUD(增查改刪),在UserMapper中添加 <insert id="insertUser" parameterType="com.rjxy.ibatis.bean.User">insert into users(name, age) values(#{name}, #{age}); </insert><delete id="deleteUser" parameterType="int">delete from users where id=#{id} </delete><update id="updateUser" parameterType="com.rjxy.ibatis.bean.User">update users set name=#{name},age=#{age} where id=#{id} </update><select id="selectUser" parameterType="int" resultType="com.rjxy.ibatis.bean.User">select * from users where id=#{id} </select><select id="selectAllUsers" resultType="com.rjxy.ibatis.bean.User">select * from users </select>
----- 注意-----------注意-----------注意-----------注意-----------注意-----------注意-----------注意-----------注意-----------注意-----------注意-----------注意------
注意:當執行CRUD操作時,insert、delete、update都執行正常,但是,select查不到數據,原因是實體類中沒有提供無參構造函數。沒有提供任何構造函數時,系統會提供一個默認的無參構造函數,但是,當提供了有參構造函數時,系統就不會提供,需要顯式的定義。
10、運行發現數據庫只能查詢數據,但是增刪改測試時沒有報錯,數據庫卻沒有變化,原因是默認是手動添加的,需要修改。
session.commit();//將操作提交
或者
SqlSession session = sqlSessionFactory。openSession(true);//將默認改為自動提交
11、session用完之后應該關閉
session.close();
總結
以上是生活随笔為你收集整理的Mybatis应用(一)应用步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue.js项目新建及目录结构分析
- 下一篇: mybatis应用(二)注解的实现