MyBatis查询数据
1、配置好maven项目
配置步骤点击 MyBatis使用
<--------------------------------->
2、接口实现类写查询数据代码
<!-- 查询全部数据--> <select id="allStudenting" resultType="com.dh.entity.Studenting"> select * from studenting </select> <!-- 以id为条件查询单个数据--> <select id="checkStudenting" resultType="com.dh.entity.Studenting"> select * from studenting where id = #{id} </select>
3、新建service接口层和接口实现类
4、在service层的接口实现类实现dao层业务
5、封装MyBatis工具类(增删改查都要用的MyBatis工具类,封装在一起减少代码重复)
package com.dh.util; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionManager; import java.io.IOException; import java.io.InputStream; public class MyBatis { static SqlSessionManager sqlSessionManager; static { String mybatis = "mybatis.xml"; InputStream resourceAsStream = null; try { resourceAsStream = Resources.getResourceAsStream(mybatis); sqlSessionManager = SqlSessionManager.newInstance(resourceAsStream); } catch (IOException e) { e.printStackTrace(); sqlSessionManager = null; } } public static <T> T getMapper(Class<T> var1) { return sqlSessionManager.getMapper(var1); } // 获取sqlSession对象 public static SqlSessionManager getSqlSessionManager() { if (sqlSessionManager != null) { return sqlSessionManager; } return null; } }
6、全部查询和单个查询代码:
@Override public List<Studenting> allStudenting() { // 调用MyBatis工具类 StudentingDao studentingDao = MyBatis.getMapper(StudentingDao.class); List<Studenting> studentings = studentingDao.allStudenting(); return studentings; } @Override public Studenting checkStudenting(Studenting studenting) { // 调用MyBatis工具类 StudentingDao studentingDao = MyBatis.getMapper(StudentingDao.class); Studenting studenting1 = studentingDao.checkStudenting(studenting); return studenting1; }
7、测试
测试类调用接口实现类时注意设为静态(在类中,使用 static 修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。
静态成员不依赖于类的特定实例,被类的所有实例共享,就是说 static 修饰的方法或者变量不需要依赖于对象来进行访问,只要这个类被加载,Java 虚拟机就可以根据类名找到它们。)
static StudentServiceDao studentServiceDao = new StudentingServiceDaoImpl(); public static void main(String[] args) { // 单个查询 Studenting studenting4 = new Studenting(); studenting4.setId(10); Studenting studenting = studentServiceDao.checkStudenting(studenting4); // 全部查询 List<Studenting> studentings = studentServiceDao.allStudenting(); }
MyBatis增加数据
1、接口实现类写增加数据代码
<insert id="addStudenting"> <!-- 注意传入的id,name值要以#{}表示--> insert into studenting (id,name) values (#{id},#{name}) </insert>
2、在service层的接口实现类写人增加数据代码
@Override public int addStudenting(Studenting studenting) { // 调用MyBatis工具类 StudentingDao studentingDao = MyBatis.getMapper(StudentingDao.class); int studenting1 = studentingDao.addStudenting(studenting); return studenting1; }
3、测试
static StudentServiceDao studentServiceDao = new StudentingServiceDaoImpl(); public static void main(String[] args) { // 增加数据库数据 Studenting studenting1 = new Studenting(); studenting1.setName("小李"); int i = studentServiceDao.addStudenting(studenting1); }
MyBatis删除数据
1、接口实现类写删除数据代码
<delete id="deleteStudenting"> delete from studenting where id = #{id} </delete>
2、在service层的接口实现类写人删除数据代码
@Override public int deleteStudenting(Studenting studenting) { // 调用MyBatis工具类 StudentingDao studentingDao = MyBatis.getMapper(StudentingDao.class); int studenting1 = studentingDao.deleteStudenting(studenting); return studenting1; }
3、测试
static StudentServiceDao studentServiceDao = new StudentingServiceDaoImpl(); public static void main(String[] args) { // 删除数据库数据 int i1 = studentServiceDao.changeStudenting(studenting2); Studenting studenting3 = new Studenting(); studenting3.setId(9); int i3 = studentServiceDao.deleteStudenting(studenting3); }
MyBatis更改数据
1、接口实现类写更改数据代码
<update id="changeStudenting"> update studenting set name = #{name} where id = #{id} </update>
2、在service层的接口实现类写人更改数据代码
@Override public int changeStudenting(Studenting studenting) { // 调用MyBatis工具类 StudentingDao studentingDao = MyBatis.getMapper(StudentingDao.class); int studenting1 = studentingDao.changeStudenting(studenting); return studenting1; }
3、测试
static StudentServiceDao studentServiceDao = new StudentingServiceDaoImpl(); public static void main(String[] args) { // 更改数据库数据 Studenting studenting2 = new Studenting(); studenting2.setId(8); studenting2.setName("小丽"); int i1 = studentServiceDao.changeStudenting(studenting2); }