发表于: 2018-03-07 21:29:15

1 508


今天完成的事情:

完成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.还有一种情况就是接口声明的方法在映射文件里面没有。




返回列表 返回列表
评论

    分享到