2.创建全局配置文件 mybatis-confilg.xml
ideal 中没有需要自己设置一个模板 设置好后 在SRC目录下创建一个mybatis-config.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"> <!--1.这里用来环境配置 和 数据库配置 就是配置mybatis的环境 2.配置映射文件 --> <configuration> <!--default 是默认的环境 --> <environments default="mysql"> <!--配置一个mysql的环境 id是数据库的唯一标识 不可重复 --> <environment id="mysql"> <!--transactionmanager type= "jdbc" 表示可以使用jdbc的事物 ,提交回滚等操作--> <transactionManager type="JDBC"></transactionManager> <!--dataSource type="POOLED" 就是基于数据库连接池技术进行管理 --> <dataSource type="POOLED"> <!--property 用来配置数据库的基本连接信息--> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/qy100?CharacterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!--mapper 用来配置映射文件 就是我dao包中创建的mapper文件名 --> <mappers> <mapper resource="com/aaa/dao/DeptMapper.xml" /> </mappers> </configuration>
3.创建DAO接口和实体类
package com.aaa.dao; import com.aaa.entity.Dept; import java.util.List; /* * *使用Dao接口进行操作 * 1.定义增删改 * 2.修改 映射文件 * * */ public interface DeptDAO { List<Dept> queryAll(); int insert(Dept dept); int update(Dept dept); int delete(int id); }
实体类
package com.aaa.entity; public class Dept { private int id; private String ename; private String job; private double sal; public Dept() { } public Dept(int id, String ename, String job, double sal) { this.id = id; this.ename = ename; this.job = job; this.sal = sal; } public Dept(int id, String ename) { this.id = id; this.ename = ename; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } public double getSal() { return sal; } public void setSal(double sal) { this.sal = sal; } @Override public String toString() { return "Dept{" + "id=" + id + ", ename=‘" + ename + ‘\‘‘ + ", job=‘" + job + ‘\‘‘ + ", sal=" + sal + ‘}‘; } }
4.创建DAO对应的SQL映射文件 就是创建一个mybatis-mapper文件 ideal中默认没有的 和mybatis-config.xml一样需要进行进行模板配置
模板添加完成 创建mybatis-mapper.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"> <!--确保唯一的标识 通常指向dao接口的完全限定名--> <mapper namespace="com.aaa.dao.DeptDAO"> <!--查询命令 id="selectDept":唯一标识 resultType:返回的结果的类型 --> <!--通过dao接口中定义功能 进行操作SQL命令 需要修改映射文件--> <select id="queryAll" resultType="com.aaa.entity.Dept"> select * from dept; </select> <insert id="insert" parameterType="com.aaa.entity.Dept"> insert into dept(ename,job,sal)values(#{ename},#{job},#{sal}); </insert> <update id="update" parameterType="com.aaa.entity.Dept"> update dept set ename=#{ename} where id=#{id}; </update> <!--接口中定义的是int类型 这里 parametertype 返回值就是 Integer 类型--> <delete id="delete" parameterType="Integer"> delete from dept where id=#{id} </delete> </mapper>
5.读取配置文件 就是在mybatis中 添加
<mappers>
注意 这里的路径 用 / 号分开
<mapper resource="com/aaa/dao/DeptMapper.xml" />
<mappers>
6.创建一个单列模式的工厂类 便于连接测试。
package com.aaa.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 Factory { private static SqlSessionFactory ssf=null; static{ String resource="mybatis-config.xml"; InputStream is=null; try { is = Resources.getResourceAsStream(resource); ssf = new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { e.printStackTrace(); } } public Factory() { } public static SqlSessionFactory getSsf(){ return ssf; } public static SqlSession getSqlSession(){ return ssf.openSession(); } }
7.测试
package com.aaa.test; import com.aaa.dao.DeptDAO; import com.aaa.entity.Dept; import com.aaa.util.Factory; import org.apache.ibatis.session.SqlSession; import java.util.List; /* * 测试 使用接口的方式来 进行SQL命令的操作。 * */ public class TestDAO { public static void main(String[] args) { SqlSession sqlSession = Factory.getSqlSession(); DeptDAO deptDAO = sqlSession.getMapper(DeptDAO.class); //1.增删改 需要事务支持 2.insert添加数据 // deptDAO.insert(new Dept(0,"李四", "老师",0)); // sqlSession.commit(); //修改数据 根据id 修改名字 需要在实体类中创建对应的构造方法。 // deptDAO.update(new Dept(1, "哈哈")); // sqlSession.commit(); //删除数据 // deptDAO.delete(4); // sqlSession.commit(); //查询数据 List<Dept> deptList = deptDAO.queryAll(); for (Dept dept:deptList ) { System.out.println("部门信息"+dept); } sqlSession.close(); } }
原文:https://www.cnblogs.com/ZXF6/p/11252016.html