发表于: 2018-03-07 21:29:15
1 511
今天完成的事情:
完成mybatis编写DAO
完成mybatis映射mapper
<?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>
<!-- 和Spring整合后environment配置都会被干掉 -->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理,目前由mybatis来管理 -->
<transactionManager type="JDBC" />
<!-- 数据库连接池,目前由mybatis来管理 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mydatabases" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatis/Mapper.xml" />
<mapper resource="mybatis/UserMapper.xml" />
</mappers>
</configuration>
<?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="test">
<!-- 需求:通过id查询用户 -->
<select id="find" parameterType="int" resultType="mybatis.User">
select * from student where ID = #{ID}
</select>
</mapper>
package mybatis;
public interface UserMapper {
//根据id查询用户信息
public User findUserById(int id) throws Exception;
//根据用户名模糊查询
// public List<User> findUserByName(String name) throws Exception;
//添加用户信息
// public void insertUser(User user) throws Exception;
//删除用户信息
// public void deleteUser(int id) throws Exception;
//更新用户信息
// public void updateUser(User user) throws Exception;
}
<mapper namespace="mybatis.UserMapper">
<!-- 需求:通过id查询用户 -->
<select id="findUserById" parameterType="int" resultType="mybatis.User">
select * from student where ID = #{ID}
</select>
</mapper>
package mybatis;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import java.io.InputStream;
public class MapperTest {
private SqlSessionFactory sqlSessionFactory;
@Before //创建sqlSessionFactory
public void setUp() throws Exception {
String resource = "SqlMapConfig.xml"; //mybatis配置文件
//得到配置文件的流
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建会话工厂SqlSessionFactory,要传入mybaits的配置文件的流
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void testFindUserById() throws Exception {
SqlSession sqlSession = sqlSessionFactory.openSession();
//创建UserMapper对象,mybatis自动生成mapper代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.findUserById(1);
System.out.println(user);
}
// @Test
// public void testFindUserByName() throws Exception {
//
// SqlSession sqlSession = sqlSessionFactory.openSession();
// //创建UserMapper对象,mybatis自动生成mapper代理对象
// UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// List<User> list = userMapper.findUserByName("倪升武");
// sqlSession.close();
// System.out.println(list);
// }
}
package mybatis;
public class User {
private int ID;
private String create_at;
private String update_at;
private String name;
private String dailyLink;
private int QQ;
private String onlineNumber;
private String mail;
private int phone;
private String enrollmentTime;
private String professionType;
private String brotherName;
private String promise;
@Override
public String toString() {
return "student{" +
"id=" + ID +
", name='" + name + '\'' +
'}';
}
public Integer getId() {
return ID;
}
public void setId(Integer ID) {
this.ID = ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCreate_at() {
return create_at;
}
public void setCreate_at(String create_at) {
this.create_at = create_at;
}
public String getUpdate_at() {
return update_at;
}
public void setUpdate_at(String update_at) {
this.update_at = update_at;
}
public String getDailyLink() {
return dailyLink;
}
public void setDailyLink(String dailyLink) {
this.dailyLink = dailyLink;
}
public String getOnlineNumber() {
return onlineNumber;
}
public void setOnlineNumber(String onlineNumber) {
this.onlineNumber = onlineNumber;
}
public String getEnrollmentTime() {
return enrollmentTime;
}
public void setEnrollmentTime(String enrollmentTime) {
this.enrollmentTime = enrollmentTime;
}
public String getProfessionType() {
return professionType;
}
public void setProfessionType(String professionType) {
this.professionType = professionType;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public String getBrotherName() {
return brotherName;
}
public void setBrotherName(String brotherName) {
this.brotherName = brotherName;
}
public String getPromise() {
return promise;
}
public void setPromise(String promise) {
this.promise = promise;
}
public int getQQ() {
return QQ;
}
public void setQQ(int QQ) {
this.QQ = QQ;
}
public int getPhone() {
return phone;
}
public void setPhone(int phone) {
this.phone = phone;
}
}
明天计划的事情:
小课堂分享
遇到的问题:
收获:
Mapped Statements collection does not contain value for xxx
1.mybatis的映射文件的命令空间与接口的全限定名不一致;
2有可能mybatis的映射文件名字与接口的类名字不一致;
3.还有一种情况就是接口声明的方法在映射文件里面没有。
评论