0
点赞
收藏
分享

微信扫一扫

mybatis 用原始的dao方法开发

梦想家们 2023-02-09 阅读 96


程序员需要开发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);
}
}







举报

相关推荐

0 条评论