如何使用mybatis连接数据库?详细解析

您所在的位置:网站首页 mybatis连接mysql数据库步骤 如何使用mybatis连接数据库?详细解析

如何使用mybatis连接数据库?详细解析

2024-02-28 13:44| 来源: 网络整理| 查看: 265

实现mybatis连接数据库的步骤:

1.建表

2.pom.xml的配置

4.0.0 com.cqust ch02-动态代理 1.0-SNAPSHOT UTF-8 1.8 1.8 junit junit 4.11 test org.mybatis mybatis 3.5.1 mysql mysql-connector-java 5.1.9 src/main/java **/*.xml **/*.properties

3.创建实体类在domain包下

package com.cqust.domain; /** *实体类属性要求和表中的名字一致,类型也一致 */ public class Dept { private Integer deptno; private String dname; private String loc; public Dept(Integer deptno, String dname, String loc) { this.deptno = deptno; this.dname = dname; this.loc = loc; } public Integer getDeptno() { return deptno; } public void setDeptno(Integer deptno) { this.deptno = deptno; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } public String getLoc() { return loc; } public void setLoc(String loc) { this.loc = loc; } @Override public String toString() { return "Dept{" + "deptno=" + deptno + ", dname='" + dname + '\'' + ", loc='" + loc + '\'' + '}'; } }

4.创建dao接口

package com.cqust.dao; import com.cqust.domain.Dept; import java.util.List; /** * 定义访问数据库的方法,增删改查 */ public interface DeptDao { public List selectDept(); public int insertDept(Dept dept); public int deleteDept(Integer deptno); public int updateDept(Dept dept); }

5.创建mybatis配置文件 sql映射文件,写sql语句的,一个表一个sql映射文件,在接口所在的目录下 文件名和接口一致

select deptno,dname,loc from dept insert into dept (deptno,dname,loc) values (#{deptno},#{dname},#{loc}) delete from dept where deptno = #{deptno} update dept set dname = #{dname},loc=#{loc} where deptno = #{deptno}

6.创建主配置文件: 一个项目一个主配置文件,提供数据库连接信息,和sql映射文件的信息

7.将创建SqlSession进行了封装

package com.cqust.util; 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 java.io.IOException; import java.io.InputStream; public class MyBatisUtil { private static SqlSessionFactory sqlSessionFactory = null; static { String config = "mybatis.xml"; InputStream in = null; try { in = Resources.getResourceAsStream(config); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); sqlSessionFactory = sqlSessionFactoryBuilder.build(in); } public static SqlSession getSqlSession(){ SqlSession sqlSession = null; if (sqlSessionFactory != null){ sqlSession = sqlSessionFactory.openSession(true); } return sqlSession; } }

8.测试类:

package com.cqust; import com.cqust.dao.DeptDao; import com.cqust.domain.Dept; import com.cqust.util.MyBatisUtil; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import java.util.List; public class MyTest { @Test public void testSelectDept(){ SqlSession sqlSession = MyBatisUtil.getSqlSession(); DeptDao deptDao = sqlSession.getMapper(DeptDao.class); System.out.println("==="+deptDao);//org.apache.ibatis.binding.MapperProxy@a86356 List deptList = deptDao.selectDept(); for (Dept dept : deptList) { System.out.println(dept); } sqlSession.close(); }

9.查询结果:

工程结构:

总结:整个项目需要注意的小知识点!!!

(1).如果xml文件在运行时没有或者找不到,看是不是没有配置插件

src/main/java **/*.xml **/*.properties

如果没有配置可能会存在找不到xml,可以先在target目录中找一下,如果很多方法都试过还是不行

直接暴力复制粘贴就行。把工程下的xml文件复制到target目录下的指定位置。

(2).有两个xml文件一个在classes下,一个在,dao下,这是比较容易出错的地方。

(3).DeptDao deptDao = sqlSession.getMapper(DeptDao.class);

这里我们直接获取到代理对象来执行方法,接口的实现类交给mybatis来做,这里直接使用就可以了,不用关心底层原理。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3