Mybatis 框架 4
来源:互联网 发布:logo 设计软件 编辑:程序博客网 时间:2024/06/12 18:53
1.原始dao开发模式
package myBatisTest.dao;import java.sql.SQLException;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import myBatisTest.UserInfo;public class UserDaoImpl implements UserDao { SqlSessionFactory ssf; public UserDaoImpl(SqlSessionFactory ssf) { super(); this.ssf = ssf; } @Override public UserInfo getUserById(int id) throws SQLException { /*打开会话*/ SqlSession session = ssf.openSession(); /*SelectUser:mapper.xml中方法id 1: 传入的参数*/ UserInfo userInfo = session.selectOne("SelectUser", 1); session.close(); return userInfo; }}
package myBatisTest;import ....public class test { public static void main(String[] args) throws IOException { InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml"); SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(inputStream); UserDaoImpl usi = new UserDaoImpl(ssf); try { usi.getUserById(1); } catch (SQLException e) { e.printStackTrace(); } }}
缺点 :
1.daoImpl代码做了许多重复的动作 例如 每个方法都需要
session.commit() session.close()
2.UserInfo userInfo = session.selectOne(“SelectUser”, obj);
第一个参数在mapper.xml被写死
第二个参数是object传错不报错
2.mapper代理开发模式
重点
- 新建一个UserDao.xml文件(必须与接口同名UserDao.java)
将该文件配置进SqlMapConfig.xml文件中- UserDao.xml中 设置namespace=”com.nue.dao.UserDao”关联到要操作的到的接口文件
- 接口中声明的方法中
方法名与UserDao.xml中操作语句 id一致
参数类型与parameterType保持一致,
返回类型与resultType保持一致
UserDao.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=""com.nue.dao.UserDao"> <select id="getUserById" parameterType="int" resultType="myBatisTest.UserInfo"> select * from userinfo where id = #{id} </select></mapper>
UserDao.java中
package myBatisTest.dao;import java.sql.SQLException;import myBatisTest.UserInfo;public interface UserDao { public UserInfo getUserById(int id) throws SQLException;}
test.java中
package myBatisTest.dao;import ....public class test { public static void main(String[] args) throws IOException, SQLException { // TODO Auto-generated method stub /*1.加载环境 获取SqlSessionFactory 接口*/ InputStream is = Resources.getResourceAsStream("myBatisTest/dao/SqlMapConfig.xml"); SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is); /*2.打开会话*/ SqlSession sqlSession = sf.openSession(); /*3.获取代理对象,不用写实现类*/ UserDao ud= sqlSession.getMapper(UserDao.class); UserInfo u=ud.getUserById(55); System.out.println(u); }}
concole
UserInfo [id=55, userName=张九, password=333, sex=男, email=null]
阅读全文
0 0
- Mybatis 框架 4
- mybatis框架(4)---输入输出映射
- mybatis框架
- MyBatis框架
- Mybatis框架
- Mybatis框架
- Mybatis框架
- MyBatis框架
- MyBatis框架
- Mybatis框架
- MyBatis框架
- Mybatis框架
- myBatis框架
- mybatis框架
- myBatis框架
- MyBatis框架
- MyBatis框架
- Mybatis框架
- 洛谷 P1013 进制位 【搜索 + 进制运算】
- python应用系列教程——python使用SocketServer实现网络服务器,socket实现客户端
- 字符集详解
- Apache配置虚拟主机的坑 本地wampserver调试环境 局域网访问
- jsp页面取后台传的值
- Mybatis 框架 4
- 区块链技术在创造共享经济方面胜过互联网
- Activity四种启动方式生命周期变化(一)
- 关于写javaee数据库的一些规范问题
- oracle远程连接
- LeetCode基础-链表-反转链表
- Ubuntu蓝屏进不了图形界面的解决办法
- 第三课作业3:1!+1/2!+1/3!+1/4!+....的前20项和
- 人工智能专家供不应求,硅谷开启人才争夺 | 聚焦