mybatis入门之CURD
来源:互联网 发布:软件安装手册 编辑:程序博客网 时间:2024/06/05 14:19
mybatis入门之CURD
1. maven 依赖
<properties> <mybatis.version>3.3.0</mybatis.version> <junit.version>4.0</junit.version> <mysql.version>5.1.40</mysql.version></properties><dependencies> <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency></dependencies>
2. 构建测试的数据库
create table student( sid int(4) primary key auto_increment, sname char(50), age int(3), gno int(4));
3. 创建jdbc.properties , 把数据库配置信息外置
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/你的数据库名username=你的数据库用户名password=你的密码
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> <!-- 引入外部jdbc.properties 文件--> <properties resource="jdbc.properties"></properties> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <!-- 映射方式1: xml 文件 --> <mapper resource="com/zhy/Student.xml"/> <!-- 映射方式2:接口--> <mapper class="com.zhy.user.dao.StudentMapper"></mapper> </mappers></configuration>
5. bean实体类
package com.zhy.user.bean;/** * Created by Administrator on 2017/7/20 0020. */public class Student { private int sid; private String sname; private int age; private int gno; public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getGno() { return gno; } public void setGno(int gno) { this.gno = gno; } public Student() { } @Override public String toString() { return "Student{" + "sid=" + sid + ", sname='" + sname + '\'' + ", age=" + age + ", gno=" + gno + '}'; }}
6. SqlSeesionFactory对象获取。MybatisUtils.java
package com.zhy.test;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.InputStream;/** * Created by Administrator on 2017/7/22 0022. * * Mybatis工具类 */public class MybatisUtils { public static SqlSessionFactory getSqlSessionFactory(){ String resource = "config.xml"; InputStream inputStream = null; try{ inputStream = Resources.getResourceAsStream(resource); }catch (Exception e){ e.printStackTrace(); } SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); return sqlSessionFactory; }}
7. xml 映射,映射文件:Student.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.zhy.user.bean.Student"> <!--查询--> <select id="selectStudent" parameterType="int" resultType="com.zhy.user.bean.Student"> select * from student s where s.sid=#{sid} </select> <!--添加--> <insert id="insertStudent" parameterType="com.zhy.user.bean.Student"> insert into student(sname,age,gno) values (#{sname},#{age},#{gno}) </insert> <!--删除--> <delete id="deleteStudent" parameterType="int"> delete from student where sid=#{sid} </delete> <!--更新--> <update id="updateStudent" parameterType="com.zhy.user.bean.Student"> update student set sname=#{sname} where sid=#{sid} </update></mapper>
8. 通过xml配置对数据库操作, TestMybatisByXml.java
package com.zhy.test;import com.zhy.user.bean.Student;import com.zhy.user.dao.StudentMapper;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.junit.Test;/** * Created by Administrator on 2017/7/22 0022. * * 通过xml配置 */public class TestMyBatisByXml { @Test public void selectTest(){ SqlSession session = null; try{ session = MybatisUtils.getSqlSessionFactory().openSession(); Student student = session.selectOne("com.zhy.user.bean.Student.selectStudent",2); System.out.println(student); }catch (Exception e) { e.printStackTrace(); }finally { session.close(); } } @Test public void insertTest(){ SqlSession session = null; try{ session = MybatisUtils.getSqlSessionFactory().openSession(); Student student = new Student(); student.setSname("Mr.Mybatis"); student.setAge(12); student.setGno(1); //返回影响行数 int resultNum = session.insert("com.zhy.user.bean.Student.insertStudent",student); System.out.println(resultNum); }catch (Exception e) { e.printStackTrace(); }finally { session.close(); } } @Test public void deleteTest(){ SqlSession session = null; try { session = MybatisUtils.getSqlSessionFactory().openSession(true); //返回影响行数 int num = session.delete("com.zhy.user.bean.Student.deleteStudent",17); System.out.println(num); }catch (Exception e){ e.printStackTrace(); }finally { session.close(); } } @Test public void updateStudent(){ SqlSession session = null; try { session = MybatisUtils.getSqlSessionFactory().openSession(true); Student student = new Student(); student.setSname("zh1"); student.setSid(2); //返回影响行数 int num = session.update("com.zhy.user.bean.Student.updateStudent", student); System.out.println(num); }catch (Exception e){ e.printStackTrace(); }finally { session.close(); } }}
9. 通过接口配置,StudentMapper.java
package com.zhy.user.dao;import com.zhy.user.bean.Student;import org.apache.ibatis.annotations.Delete;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Update;/** * Created by Administrator on 2017/7/21 0021. */public interface StudentMapper { @Select("select * from student where sid=#{sid}") public Student selectStudent(int sid); @Insert("insert into student(sname,age, gno) values(#{sname},${age},#{gno})") public int insertStudent(Student student); @Delete("delete from student where sid=#{sid}") public int deleteStudent(int sid); @Update("update student set sname=#{sname} where sid=#{sid}") public int updateStudent(Student student);}
10. 通过接口配置对数据库的操作, TestMybatisByInterface.java
package com.zhy.test;import com.zhy.user.bean.Student;import com.zhy.user.dao.StudentMapper;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import com.zhy.test.MybatisUtils;/** * Created by Administrator on 2017/7/20 0020. * * 通过interface配置 * */public class TestMybatisByInterface { @Test public void selectTest(){ SqlSession session = null; try{ session = MybatisUtils.getSqlSessionFactory().openSession(true); StudentMapper studentMapper = session.getMapper(StudentMapper.class); Student student = studentMapper.selectStudent(2); System.out.println(student); }catch (Exception e) { e.printStackTrace(); }finally { session.close(); } } @Test public void insertTest(){ SqlSession session = null; session = MybatisUtils.getSqlSessionFactory().openSession(); StudentMapper studentMapper = session.getMapper(StudentMapper.class); Student student = new Student(); student.setSname("zh332hyahaha"); student.setGno(1); student.setAge(18); try { int num = studentMapper.insertStudent(student); System.out.println(num); }catch (Exception e){ e.printStackTrace(); }finally { session.commit(); session.close(); } } @Test public void deleteTest(){ SqlSession session = null; try { session = MybatisUtils.getSqlSessionFactory().openSession(); StudentMapper studentMapper = session.getMapper(StudentMapper.class); int num = studentMapper.deleteStudent(18); System.out.println(num); session.commit(); }catch (Exception e){ e.printStackTrace(); }finally { session.close(); } } @Test public void updateStudent(){ SqlSession session = null; try { session = MybatisUtils.getSqlSessionFactory().openSession(); StudentMapper studentMapper = session.getMapper(StudentMapper.class); Student student = new Student(); student.setSname("zh"); student.setSid(2); int num = studentMapper.updateStudent(student); session.commit(); System.out.println(num); }catch (Exception e){ e.printStackTrace(); }finally { session.close(); } }}
注意: SqlSesisonFactory.openSession()方法默认是不主动提交事务的。事务通过主动和手动两种方式提交。 A. 主动:SqlSessionFactory.openSession(true)返回SqlSession对象,这样是会主动提交事务。 B. 手动:SqlSessionFactory.openSession()返回SqlSession对象,这是手动提交事务,在做数 据库操作后,记得用SqlSession对象的commit()方法手动提交事务,否则会出现sql语句执行成功了,但是 数据库数据没有发生改变的情况。更多SqlSession的介绍请参考官网。Mybatis的简单CURD操作,更多介绍请参考Mybatis官网:http://www.mybatis.org/mybatis-3/zh/index.html
阅读全文
1 0
- mybatis入门之CURD
- mybatis curd
- Mybatis curd操作
- mybatis 实现 curd总结
- 框架 day65 Mybatis入门(基础知识:框架原理,入门[curd],开发dao层,全局与映射配置)
- mybaits入门(CURD)
- NodeJS MongoDB CURD 入门
- mybatis的基础curd操作
- Mybatis注解方式实现CURD
- mybatis进行简单的CURD
- Mybatis实现CURD代码篇
- Mybatis入门之简介
- 新入门之Mybatis
- Mybatis系列之入门
- mybatis入门之Helloworld
- Mybatis系列之入门
- MyBatis之快速入门
- MyBatis之基础入门
- async和await简化回调函数嵌套
- Test 4 for NOIP- Result for Day3(误)
- 图的相关知识
- Java.Reader_Writer
- bzoj 4025: 二分图 cdq分治+并查集
- mybatis入门之CURD
- hibernate问题解决
- json生成html
- n阶 行列式计算
- Arpa’s obvious problem and Mehrdad’s terrible solution
- Win10下安装Tensorflow(GPU)+CUDA8.0+cudnn6
- java中的内部类总结
- 2.0vue.js 局部变量 这种比较常用
- 自定义与字符串相关的函数