实现mybatis连接数据库的步骤:
1.建表

文章插图
2.pom.xml的配置
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.cqust</groupId><artifactId>ch02-动态代理</artifactId><version>1.0-SNAPSHOT</version><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.9</version></dependency></dependencies><build><resources><resource><!--指定去哪拷贝--><directory>src/main/java</directory><includes><!--指定拷贝什么文件--><include>**/*.xml</include><include>**/*.properties</include></includes></resource><!--当配置了src/main/java下的就不会拷贝resource下的文件了所以还需要配置一下--></resources></build></project>3.创建实体类在domain包下【使用机关正确引导光路 使用mybatis连接数据库--针对小白】
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;}@Overridepublic 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<Dept> selectDept();public int insertDept(Dept dept);public int deleteDept(Integer deptno);public int updateDept(Dept dept);}5.创建mybatis配置文件sql映射文件,写sql语句的,一个表一个sql映射文件,在接口所在的目录下
文件名和接口一致
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.cqust.dao.DeptDao"><!--sql映射文件写sql语句的namespace:接口的全限定名称id:执行sql的唯一标识resultType:结果类型,是sql语句执行后得到resultSet,遍历数组得到每个java对象的类型--><select id="selectDept" resultType="com.cqust.domain.Dept">select deptno,dname,loc from dept</select><insert id="insertDept">insert into dept (deptno,dname,loc) values (#{deptno},#{dname},#{loc})</insert><delete id="deleteDept">delete from dept where deptno = #{deptno}</delete><update id="updateDept">update dept set dname = #{dname},loc=#{loc} where deptno = #{deptno}</update></mapper>6.创建主配置文件:一个项目一个主配置文件,提供数据库连接信息,和sql映射文件的信息
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><settings><setting name="logImpl" value="https://tazarkount.com/read/STDOUT_LOGGING"/></settings><environments default="myenv"><!--default值为一个env的id--><environment id="myenv"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="https://tazarkount.com/read/com.mysql.jdbc.Driver"/><property name="url" value="https://tazarkount.com/read/jdbc:mysql://localhost:3306/cqust_db2"/><property name="username" value="https://tazarkount.com/read/root"/><property name="password" value="https://tazarkount.com/read/hch1"/></dataSource></environment></environments><mappers><mapper resource="com/cqust/dao/DeptDao.xml"/><!--一个mapper标签指定一个sql映射文件路径从类路径开始classes--></mappers></configuration><!--mybatis的主配置文件:定义了数据库连接信息,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 {@Testpublic void testSelectDept(){SqlSession sqlSession =MyBatisUtil.getSqlSession();DeptDao deptDao =sqlSession.getMapper(DeptDao.class);System.out.println("==="+deptDao);//org.apache.ibatis.binding.MapperProxy@a86356List<Dept> deptList =deptDao.selectDept();for (Dept dept : deptList) {System.out.println(dept);}sqlSession.close();}9.查询结果:
文章插图
工程结构:

文章插图
总结:整个项目需要注意的小知识点!!!
(1).如果xml文件在运行时没有或者找不到,看是不是没有配置插件
<resource><!--指定去哪拷贝--><directory>src/main/java</directory><includes><!--指定拷贝什么文件--><include>**/*.xml</include><include>**/*.properties</include></includes></resource><!--当配置了src/main/java下的就不会拷贝resource下的文件了所以还需要配置一下-->如果没有配置可能会存在找不到xml,可以先在target目录中找一下,如果很多方法都试过还是不行直接暴力复制粘贴就行 。把工程下的xml文件复制到target目录下的指定位置 。
(2).有两个xml文件一个在classes下,一个在,dao下,这是比较容易出错的地方 。

文章插图
(3).DeptDao deptDao =sqlSession.getMapper(DeptDao.class);
这里我们直接获取到代理对象来执行方法,接口的实现类交给mybatis来做,这里直接使用就可以了,不用关心底层原理 。
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
