idea2019用mysql_IDEA2019.3使用MyBatis实现简单的增删改查步骤(MySQL8.0)

粗略步骤

1.mybatis-3.4.6.jar、 mysql-connector-java-8.0.19.jar

2.conf.xml (数据库配置信息)

3.表、类、映射文件mapper.xml、对应接口、修改配置信息

4.测试

学习视频:https://www.bilibili.com/video/BV1gs411j7kA?p=5

详细步骤

1. 建立项目 导包

mybatis-3.4.6.jar、 mysql-connector-java-8.0.19.jar

File->Project Structure->Modules->Dependencies->右侧加号->1.jar ,然后选中要导入的那个包。2.在数据库中建立表,在idea中建立对应的类。

假设表student有三个属性 sno,sname,sage

建立类Student 也有三个属性(现在的类中属性名和表中的列名一致,如果名字不一样需要额外的配置),然后建立无参构造方法

,有参构造方法,set get方法3.建立映射关系StudentMapper.xml,创建接口StudentMapper.class,配置conf.xml 文件

(1)映射关系StudentMapper.xml(建立在src下面的mapper包中 在里面可以写sql语句 )1)<?xml version="1.0" encoding="UTF-8" ?>

/p>

PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">这些是不变的2)

说明:

a.namespace 是接口StudentMapper.class的全类名

b.在查询中 resultType是输出参数 parameterType是输入参数(因为规定输入和输出参数都只能有一个,

所以尽管查询全部学生也要写是Student,在调用的时候可以用List接收),在resultType="Student"

中本来应该写Student的全类名,但是在conf中配置了全类名的别名为Student,所以这样写.

c.id值就是调用的时候唯一之别的,调用的方法与id值对应然后执行里面的sql语句

select* from student where sno =#{sno}

select*from student

(2)建立接口StudentMapper.class接口中的方法就是StudentMapper.xml里面的id值//查询单个学生

Student queryStudentBySno(intsno);//查询全部

ListqueryAllStudents();

(3)在conf.xml中1)引入StudentMapper.xml

2)设置别名

3)conf.xml中有数据库配置信息,写自己的 url username password

4.测试

写一个测试类public static void queryStudentBySno() throwsIOException {//加载MyBatis配置文件(为了访问数据库)

Reader reader = Resources.getResourceAsReader("conf.xml") ;

SqlSessionFactory sessionFactory= newSqlSessionFactoryBuilder().build(reader) ;//session - connection

SqlSession session =sessionFactory.openSession() ;

StudentMapper studentMapper= session.getMapper(StudentMapper.class);

Student student= studentMapper.queryStudentBySno(2020);

System.out.println(student);

session.close();

}

注意:增删改需要提交事务public static void deleteStudentBySno() throwsIOException {//加载MyBatis配置文件(为了访问数据库)

Reader reader = Resources.getResourceAsReader("conf.xml") ;

SqlSessionFactory sessionFactory= newSqlSessionFactoryBuilder().build(reader) ;//session - connection

SqlSession session =sessionFactory.openSession() ;

StudentMapper studentMapper= session.getMapper(StudentMapper.class);

studentMapper.deleteStudentBySno(14);

session.commit();//提交事务

session.close();

}

所用的文件有

1.Student.class (和数据库中的表对应的类,在scr下 org.student.entity包中)

2.StudentMapper.class(接口, 在src下的org.student.mapper包中)

3.StudentMapper.xml(映射文件可以写增删改查的查询语句, 在src下的org.student.mapper包中)

4.conf.xml 在scr下

5.testStudent.class(测试一下,在org.student.test包中)

packageorg.student.entity;importcom.mysql.cj.jdbc.Blob;public classStudent {private intsno;privateString sname;private intsage;privateString saddress;publicStudent() {

}public Student(int sno, String sname, intsage, String saddress) {this.sno =sno;this.sname =sname;this.sage =sage;this.saddress =saddress;

}public intgetSno() {returnsno;

}public void setSno(intsno) {this.sno =sno;

}publicString getSname() {returnsname;

}public voidsetSname(String sname) {this.sname =sname;

}public intgetSage() {returnsage;

}public void setSage(intsage) {this.sage =sage;

}publicString getSaddress() {returnsaddress;

}public voidsetSaddress(String saddress) {this.saddress =saddress;

}

@OverridepublicString toString() {return sno+"-"+this.sname+"-"+this.sage+"-"+this.saddress ;

}

}

packageorg.student.mapper;importorg.student.entity.Student;importjava.util.List;public interfaceStudentMapper {/** 1.方法名和mapper.xml文件中标签的id值相同

* 2.方法的 输入参数 和mapper.xml文件中标签的 parameterType类型一致 (如果mapper.xml的标签中没有 parameterType,则说明方法没有输入参数)

* 3.方法的返回值 和mapper.xml文件中标签的 resultType类型一致 (无论查询结果是一个 还是多个(student、List),在mapper.xml标签中的resultType中只写 一个(Student);如果没有resultType,则说明方法的返回值为void)*/

//查询单个学生

Student queryStudentBySno(intsno);//查询全部

ListqueryAllStudents();//增加

voidaddStudent(Student student);//删除

void deleteStudentBySno(intsno);//修改

voidupdateStudentBySno(Student student);

}

/p>

PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select* from student where sno =#{sno}

select*from student

insert into student(sno,sname,sage,saddress) values (#{sno},#{sname},#{sage},#{saddress})

delete from student where sno=#{sno}

update student set sno=#{sno},sname=#{sname},sage=#{sage},saddress=#{saddress} where sno=#{sno}

/p>

PUBLIC"-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

package org.student.test;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.student.entity.Student;import org.student.mapper.StudentMapper;import java.io.IOException;import java.io.Reader;import java.util.List;public class TestStudent {

public static void queryStudentBySno() throws IOException {

//加载MyBatis配置文件(为了访问数据库)

Reader reader= Resources.getResourceAsReader("conf.xml") ; SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader) ;//session - connection

SqlSession session= sessionFactory.openSession() ; StudentMapper studentMapper = session.getMapper(StudentMapper.class); Student student = studentMapper.queryStudentBySno(2016203491); System.out.println(student); session.close();}

public static void queryAllStudents() throws IOException {

//加载MyBatis配置文件(为了访问数据库)

Reader reader= Resources.getResourceAsReader("conf.xml") ; SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader) ;//session - connection

SqlSession session= sessionFactory.openSession() ; StudentMapper studentMapper = session.getMapper(StudentMapper.class); List students = studentMapper.queryAllStudents(); System.out.println(students); session.close();}

public static void addStudent() throws IOException {

//加载MyBatis配置文件(为了访问数据库)

Reader reader= Resources.getResourceAsReader("conf.xml") ; SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader) ;//session - connection

SqlSession session= sessionFactory.openSession() ; StudentMapper studentMapper = session.getMapper(StudentMapper.class); Student student = new Student(1,"张三",19,"济南"); studentMapper.addStudent(student);session.commit();//提交事务

session.close();}

public static void deleteStudentBySno() throws IOException {

//加载MyBatis配置文件(为了访问数据库)

Reader reader= Resources.getResourceAsReader("conf.xml") ; SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader) ;//session - connection

SqlSession session= sessionFactory.openSession() ; StudentMapper studentMapper = session.getMapper(StudentMapper.class); studentMapper.deleteStudentBySno(14);session.commit();//提交事务

session.close();}

public static void updateStudentBySno() throws IOException {

//加载MyBatis配置文件(为了访问数据库)

Reader reader= Resources.getResourceAsReader("conf.xml") ; SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader) ;//session - connection

SqlSession session= sessionFactory.openSession() ; StudentMapper studentMapper = session.getMapper(StudentMapper.class); Student student = new Student(2020,"丸子",19,"北京"); studentMapper.updateStudentBySno(student);session.commit();//提交事务

session.close();}

public static void main(String[]args) throws IOException {

// queryAllStudents();// queryStudentBySno();// addStudent(); queryAllStudents();// deleteStudentBySno();// queryAllStudents();// updateStudentBySno();// queryAllStudents();}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值