mybatis 用原始的dao方法开发

xiaoxiao2021-02-28  99

程序员需要开发dao接口和dao的实现类

编写User.xml映射文件:

<select id="findUserById" parameterType="int" resultType="com.mo.pojo.User"> SELECT * FROM USER WHERE id = #{id} </select> <insert id="insertUser" parameterType="com.mo.pojo.User" > INSERT INTO USER (id,username,sex) VALUES (#{id},#{username},#{sex}) </insert>

Dao接口和实现类:

public interface UserDao { User findUserById(int id) throws IOException ; void insertUser(User user); }

public class UserDaoImpl implements UserDao { //注入SqlSessionFactory成为成员变量,是使用了单例模式的 private SqlSessionFactory sqlSessionFactory; //创建一个新的UserDaoImpl需要一个SqlSessionFactory实现 public UserDaoImpl(SqlSessionFactory sqlSessionFactory){ this.sqlSessionFactory = sqlSessionFactory; } public User findUserById(int id) throws IOException { //通过sqlSessionFactory会话工厂获取sqlSession来获取数据库相关的操作 SqlSession sqlSession = sqlSessionFactory.openSession(); User user = sqlSession.selectOne("test.findUserById", id); return user; } public void insertUser(User user) { //获取sqlSession,进行相关的数据库操作 SqlSession sqlSession = sqlSessionFactory.openSession(); sqlSession.insert("test.insertUser", user); } }

单元测试

public class TestDao { //这里需要创建sqlSessionFactory工厂,因为创建新的UserDaoImpl需要注入会话工厂 private SqlSessionFactory sqlSessionFactory; @Before public void setUp() throws IOException{ String resource = "SqlMapConfig.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } @Test public void test() throws IOException{ //这里需要注入一个sqlSessionFactory才能创建对象 UserDao userdao = new UserDaoImpl(sqlSessionFactory); User user = userdao.findUserById(4); System.out.println(user); } @Test public void test1(){ UserDao userdao = new UserDaoImpl(sqlSessionFactory); User user = new User(); user.setId(9); user.setUsername("bushi"); user.setSex("男"); userdao.insertUser(user); } }

转载请注明原文地址: https://www.6miu.com/read-52806.html

最新回复(0)