Dao中的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="org.example.Dao.StudentDao">
<select id="GetStudentData" resultType="org.example.Entity.Student">
select id,name,email,age from student
</select>
<!-- select表示查询操作
id:你要执行的sql语法的唯一标识,mybatis会使用这个id值来找到执行sql语句
可以自定义,但是要求使用接口中的方法名
resultType:表示结果类型的,是sql语句执行后得到的ResultSet,遍历这个ResultSet得到java对象的类型
值写的类型是全限定名称
-->
</mapper>
<!--
sql映射文件:写sql语句的,mybatis会执行这些sql
1.指定约束文件
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
mybatis-3-mapper.dtd是约束文件的名称,拓展名是dtd的
2.约束文件作用:限制,检查在当前文件中出现的标签,属性必须符合mybatis的要求
3.mapper 是当前文件的根标签,必须的。
namespace:叫做命名空间,唯一的值,可以是自定义的字符串
要求使用dao接口的全限定名称
4.在当前文件中,可以使用特定的标签,表示数据库的特定操作。
<select>:表示执行查询,select语句
<update>:表示更新数据库的操作,就是在<update>标签中写的是update sql语句
<insert>:表示插入,执行的insert语句
<delete>:表示删除,执行的delete语句
-->
Resource中的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>
<!-- 环境配置:数据库的连接信息
default:必须和某个environment的id值一样
告诉Mybatis使用哪个数据库的连接信息。也就是访问哪个数据库
-->
<environments default="online">
<!-- environment 一个数据库信息的配置
id:一个唯一值,自定义,表示环境的名称。
-->
<!-- 表示线上的数据库,是项目真实使用的库-->
<environment id="online">
<!-- transactionManager:mybatis的事务类型
type:JDBC(表示使用jdbc中的Connection对象的commit,rollback做事务处理)
-->
<transactionManager type="JDBC"/>
<!-- dataSource表示数据源,连接数据库的
type表示数据源的类型 POOLED表示使用连接池
-->
<dataSource type="POOLED">
<!-- driver,url,username,password 是固定的不能自定义-->
<!-- 数据库的驱动类名-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!-- 连接数据库的url字符串-->
<property name="url" value="jdbc:mysql://localhost:3306/syfwfl?"/>
<!-- 访问数据库的用户名称-->
<property name="username" value="root"/>
<!-- 密码-->
<property name="password" value="19980605"/>
</dataSource>
</environment>
</environments>
<!-- sql mapper(sql映射文件)的位置-->
<mappers>
<!-- 一个mapper标签指定一个文件的位置 从类路径开始的路径信息 target/classes(类路径) 定位sql语句-->
<mapper resource="org/example/Dao/StudentDao.xml"/>
</mappers>
</configuration>
<!--
mybatis的主配置文件:主要定义了数据库的配置信息,sql映射文件的位置
1.约束文件
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
mybatis-3-config.dtd:约束文件的名称
2.configuration:根标签 environments为环境配置
-->
测试文件代码,查找
//访问mybatis
//1.定义mybatis主配置文件名称,从类路径根开始(target/classes)
String config="mybatis.xml";
//2.读取这个config表示的文件
try {
InputStream input= Resources.getResourceAsStream(config);
//3.创建了SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
//4.创建SqlSessionFactory
SqlSessionFactory factory=builder.build(input);
//5.[重要]获取SqlSession对象,从SqlSessionFactory中获取
SqlSession sqlSession= factory.openSession();
//6.指定要执行的sql语句标识 sql映射文件中的namespace+"."+标签的id值、
String sqlId="org.example.Dao.StudentDao"+"."+"GetStudentData";
//7.执行sql语句,通过sqlId找到语句
List<Student> studentList=sqlSession.selectList(sqlId);
//8.输出结果
studentList.forEach(System.out::println);
//9.关闭sqlSession对象
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
插入代码(接口有数据传入)
例如:public int UpdStuData(Student student);
//访问mybatis
//1.定义mybatis主配置文件名称,从类路径根开始(target/classes)
String config="res.xml";
//2.读取这个config表示的文件
try {
InputStream input= Resources.getResourceAsStream(config);
//3.创建了SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
//4.创建SqlSessionFactory
SqlSessionFactory factory=builder.build(input);
//5.[重要]获取SqlSession对象,从SqlSessionFactory中获取
SqlSession sqlSession= factory.openSession();
//6.指定要执行的sql语句标识 sql映射文件中的namespace+"."+标签的id值、
String sqlId="Dao.StudentDao"+"."+"UpdStuData";
//7.执行sql语句,通过sqlId找到语句
Student student=new Student();
student.setId(3);
student.setName("王国熹");
student.setAge(23);
student.setEmail("fawfaw");
int ret=sqlSession.insert(sqlId,student);
sqlSession.commit();
//8.输出结果
System.out.println("修改成功"+ret+"条数据");
//9.关闭sqlSession对象
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
它的接口xml配置
<update id="UpdStuData">
insert into student values (#{id},#{name},#{email},#{age})
</update>