MyBatis框架学习(2)
程序员文章站
2022-05-24 20:21:26
...
内容为雷丰阳老师的SSM框架内容记录
1.环境搭建
导包:
1)创建一个Java工程;
2)创建一个测试库,测试表,以及封装数据的JavaBean,和操作数据的dao接口
创建表:自己用工具创建
创建JavaBean:Employee(封装表的数据)
创建一个Dao接口,用来操作数据库;
3)用MyBatis操作数据库
1.导包
2.写配置(两个,全局配置文件(指导mybatis运行的),dao接口的实现文件(描述dao中每个方法怎么工作))
1)第一个配置文件:称为mybatis的全局配置文件,指导mybatis如何正确运行,比如连接向那个数据库
2)第二个配置文件:编写每一个方法都如何向数据库发送sql语句,如何执行。。。。相当于接口的实现类
1.将mapper的namespace属性改为接口的全类名
2.配置细节
<!-- namespace:名称空;写接口的全类名;就相当于告诉mybatis这个配置文件是实现哪一个接口的 -->
<mapper namespace="com.neu.dao.EmployeeDao">
<!-- public Employee getEmpById(Integer id) -->
<!--
select:用来定义查询操作
id:方法名,相当于这个配置是对于某个方法的实现
resultType:用来指定方法运行后的返回值类型(查询操作必须指定的)
#{属性值}:代表取出传递过来的某个参数的值
-->
<select id="getEmpById" resultType="com.neu.bean.Employee">
select * from t_employee where id = #{id}
</select>
</mapper>
3.我们写的dao接口的实现文件,mybatis默认是不知道的,需要在全局配置文件中注册;
<!-- 引入我们自己编写的每一个接口的实现文件 -->
<mappers>
<!-- resource:表示从类路径下找资源 -->
<mapper resource="mybatis/EmployeeDao.xml"/>
</mappers>
3.测试
两个都一样只不过下面的try{}catch(){}
@Test
public void test() throws IOException {
//1.根据全局配置文件创建出一个SqlSessionFactory
//SqlSessionFactory:是SqlSession工厂,负责SqlSession对象
//SqlSession:sql会话(代表和数据库的一次会话)
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2.获取和数据库的一次会话;getConnection();
SqlSession sqlSession = sqlSessionFactory.openSession();
//3.使用sqlSession操作数据库,获取dao接口的实现
EmployeeDao employeeDao = sqlSession.getMapper(EmployeeDao.class);
//4.调用之前的方法
Employee employee = employeeDao.getEmpById(1);
System.out.println(employee);
}
@Test public void test() throws IOException { //1.根据全局配置文件创建出一个SqlSessionFactory //SqlSessionFactory:是SqlSession工厂,负责SqlSession对象 //SqlSession:sql会话(代表和数据库的一次会话) String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //4.调用之前的方法 Employee employee; //2.获取和数据库的一次会话;getConnection(); SqlSession openSession = sqlSessionFactory.openSession(); try { //3.使用sqlSession操作数据库,获取dao接口的实现 EmployeeDao employeeDao = openSession.getMapper(EmployeeDao.class); employee = employeeDao.getEmpById(1); } finally{ openSession.close(); } System.out.println(employee); }
2.导入dtd,写xml的时候有提示
1.先去mybatis压缩文件下解压这两个压缩文件
2.复制xml文件头上的网页地址
3.点击window--->preferences
4.点击xml--->xml catalog--->add
5.key:放置的是xml文件中的浏览器地址
location:放置的是你解压好的文件
一定要将key type改成URI
(两个xml文件,两个浏览器地址,看好是哪一个存入对应的解压好的dtd文件)