MyBatis环境搭建与简单使用
文章目录
环境搭建
1. eclipse新建java project
eclipse -> file -> new -> java project -> 输入project name -> finish。
2. 导入MyBatis相关jar包
1. 到MyBatis官网下载压缩包,解压可得到一个jar包,提供百度云资源:
链接:https://pan.baidu.com/s/1kNLXd7H5oH8tHgAIqXiaXg
提取码:mqxx
复制这段内容后打开百度网盘手机App,操作更方便哦
2. MySQL驱动包百度云资源:
链接:https://pan.baidu.com/s/1388Ed4Xz1unxwepaxGHn1w
提取码:jue0
复制这段内容后打开百度网盘手机App,操作更方便哦
将这两个jar包复制到项目src目录下,然后右键 -> build path -> add to build path。
也可以用maven搭建项目。
3. 编写配置文件mybatis-config.xml
在src目录下新建xml文件,命名为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">
<!-- 以下两行为MySQL的配置 -->
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<!-- 以下两行为Oracle的配置 -->
<!--<property name="driver" value="oracle.jdbc.driver.OracleDriver" />-->
<!--<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:XE" />-->
<property name="username" value="root" />
<property name="password" value="123456789" />
</dataSource>
</environment>
</environments>
</configuration>
简单使用
1. 新建com.au.bean包,新建Student类。
package com.au.bean;
/**
* @author HZJ
* @date 2019年11月7日 上午10:26:42
*/
public class Student {
private Integer sid;
private String sname;
public Student() {
super();
}
public Student(Integer sid, String sname) {
super();
this.sid = sid;
this.sname = sname;
}
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
@Override
public String toString() {
return "Student [sid=" + sid + ", sname=" + sname + "]";
}
}
2. 数据库创建对应的student表
create table student(sid int(8), sname varchar(20));
3. 编写StudentMapper.java接口(增删改查)
package com.au.mapper;
import java.util.List;
import com.au.bean.Student;
public interface StudentMapper {
public List<Student> findAllStudent();
public Student findStudentByName(String name);
public void deleteStudentByName(String name);
public void addStudent(Student stu);
public void updateStudentById(Integer id, String name);
}
4. 编写StudentMapper.xml文件
在com.au.mapper下新建StudentMapper.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.au.mapper.StudentMapper">
<select id="findAllStudent" resultType="com.au.bean.Student">
select * from student
</select>
<select id="findStudentByName" resultType="com.au.bean.Student" parameterType="String">
select * from student where sname = #{name}
</select>
<delete id="deleteStudentByName" parameterType="String">
delete from student where sname = #{name}
</delete>
<insert id="addStudent" parameterType="com.au.bean.Student">
insert into student values(#{sid}, #{sname})
</insert>
<update id="updateStudentById">
update student set sname = #{1} where sid = #{0}
</update>
</mapper>
然后在mybatis-config.xml添加如下内容:
<!-- 添加到</environments>下面 -->
<mappers>
<mapper resource="com/au/mapper/StudentMapper.xml" />
</mappers>
5. 编写测试类
新建com.au.test包,新建test01类:
package com.au.test;
import java.io.IOException;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.au.bean.Student;
import com.au.mapper.StudentMapper;
public class Test01 {
public static void main(String[] args) {
// findAllStudent();
// findStudentByName("deep");
// deleteStudentByName("deep");
// addStudent(new Student(4, "wangwu"));
updateStudentById(1, "java");
}
private static SqlSession getSession() {
SqlSession session = null;
try {
session = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"))
.openSession();
} catch (IOException e) {
e.printStackTrace();
}
return session;
}
/*
* 查询所有学生
*/
private static void findAllStudent() {
SqlSession session = getSession();
StudentMapper mapper = session.getMapper(StudentMapper.class);
List<Student> list = mapper.findAllStudent();
list.forEach(System.out::println);
}
/*
* 根据姓名来查询学生
*/
private static void findStudentByName(String name) {
SqlSession session = getSession();
StudentMapper mapper = session.getMapper(StudentMapper.class);
System.out.println(mapper.findStudentByName(name));
}
/*
* 根据姓名来删除学生
*/
private static void deleteStudentByName(String name) {
SqlSession session = getSession();
StudentMapper mapper = session.getMapper(StudentMapper.class);
mapper.deleteStudentByName(name);
session.commit();
System.out.println("删除了学生" + name + "之后的名单:");
findAllStudent();
}
/*
* 添加学生
*/
private static void addStudent(Student student) {
SqlSession session = getSession();
StudentMapper mapper = session.getMapper(StudentMapper.class);
mapper.addStudent(student);
session.commit();
System.out.println("添加了学生" + student.getSname() + "之后的名单:");
findAllStudent();
}
/*
* 根据id修改姓名
*/
private static void updateStudentById(Integer id, String name) {
SqlSession session = getSession();
StudentMapper mapper = session.getMapper(StudentMapper.class);
mapper.updateStudentById(id, name);
session.commit();
System.out.println("修改了学生" + name + "之后的名单:");
findAllStudent();
}
}