Mybatis应用(一)应用步骤
一、mybatis概述:
0、MyBatis 本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,由谷歌托管,并且改名為MyBatis 。2013年11月遷移到Github。
? ? ? ?1、iBATIS一詞來(lái)源于“internet”和“abatis”的組合,是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)
MyBatis是支持普通SQL查詢(xún),存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持久層框架。MyBatis消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及對(duì)結(jié)果集的檢索封裝。MyBatis可以使用簡(jiǎn)單的XML或注解用于配置和原始映射,將接口和Java的POJO(Plain Old Java Objects,普通的Java對(duì)象)映射成數(shù)據(jù)庫(kù)中的記錄。
3、MyBatis作為持久層框架,其主要思想是將程序中的大量sql語(yǔ)句剝離出來(lái),配置在配置文件中,實(shí)現(xiàn)sql的靈活配置。這樣做的好處是將sql與程序代碼分離,可以在不修改程序代碼的情況下,直接在配置文件中修改sql。
二、應(yīng)用步驟:
1、添加jar包
【mybatis】
mybatis-3.1.1.jar ?下載地址:點(diǎn)擊打開(kāi)鏈接
【Mysql驅(qū)動(dòng)包】
mysql-connector-java-5.1.7-bin.jar ?下載地址:點(diǎn)擊打開(kāi)鏈接
(相關(guān)資源我已上傳,如有需要自行下載)
2、建庫(kù)、建表
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、定義表對(duì)應(yīng)的實(shí)體類(lèi)
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文件中注冊(cè)u(píng)serMapper.xml文件 <mappers><mapper resource="com/rjxy/mybatis_test/test1/userMapper.xml"/> </mappers>
8、編寫(xiě)測(cè)試代碼,執(zhí)行定義好的select語(yǔ)句 public class Test {public static void main(String[] args) throws IOException {String resource = "conf.xml"; //加載mybatis的配置文件(它也加載關(guān)聯(lián)的映射文件)Reader reader = Resources.getResourceAsReader(resource); //構(gòu)建sqlSession的工廠 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);//創(chuàng)建能執(zhí)行映射文件中sql的sqlSessionSqlSession session = sessionFactory.openSession();//映射sql的標(biāo)識(shí)字符串String statement = "com.rjxy.mybatis.bean.userMapper"+".selectUser";//執(zhí)行查詢(xún)返回一個(gè)唯一user對(duì)象的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>
----- 注意-----------注意-----------注意-----------注意-----------注意-----------注意-----------注意-----------注意-----------注意-----------注意-----------注意------
注意:當(dāng)執(zhí)行CRUD操作時(shí),insert、delete、update都執(zhí)行正常,但是,select查不到數(shù)據(jù),原因是實(shí)體類(lèi)中沒(méi)有提供無(wú)參構(gòu)造函數(shù)。沒(méi)有提供任何構(gòu)造函數(shù)時(shí),系統(tǒng)會(huì)提供一個(gè)默認(rèn)的無(wú)參構(gòu)造函數(shù),但是,當(dāng)提供了有參構(gòu)造函數(shù)時(shí),系統(tǒng)就不會(huì)提供,需要顯式的定義。
10、運(yùn)行發(fā)現(xiàn)數(shù)據(jù)庫(kù)只能查詢(xún)數(shù)據(jù),但是增刪改測(cè)試時(shí)沒(méi)有報(bào)錯(cuò),數(shù)據(jù)庫(kù)卻沒(méi)有變化,原因是默認(rèn)是手動(dòng)添加的,需要修改。
session.commit();//將操作提交
或者
SqlSession session = sqlSessionFactory。openSession(true);//將默認(rèn)改為自動(dòng)提交
11、session用完之后應(yīng)該關(guān)閉
session.close();
總結(jié)
以上是生活随笔為你收集整理的Mybatis应用(一)应用步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Vue.js项目新建及目录结构分析
- 下一篇: mybatis应用(二)注解的实现