Maven链接数据库(3.6)
在标注的这一行报错是UserMapper中的查询语句或者是id错误

报错应该是Usermapper中查询语句错误
链接数据库之后的数据库语句放在mapper文件夹下的UserMapper中

右键com.baidu.pojo→new→package→命名com.baidu.util(前缀一样)
这个是工具 用来简化test
package com.baidu.util; 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 java.io.IOException; import java.io.Reader; //工具类 public class MybatisUtils { private static SqlSessionFactory sqlMapper = null; static { try { Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); sqlMapper=new SqlSessionFactoryBuilder().build(reader); } catch (IOException e) { e.printStackTrace(); } } //获取sqlSession对象的静态方法 public static SqlSession getSession(){ return sqlMapper.openSession();//打开一个Session } }

右键util包新建一个类MybatisUtils

再回去修改Test文件

package com.baidu.pojo; import com.baidu.util.MybatisUtils; 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 java.io.IOException; import java.io.Reader; public class Test { @org.junit.Test public void findByIdTest(){ SqlSession session = MybatisUtils.getSession(); User user = session.selectOne("findById",1); System.out.println(user); } @org.junit.Test public void insert(){ SqlSession session = MybatisUtils.getSession(); User user = new User(); user.setUname("a"); user.setUage(20); session.insert("add",user); session.commit();//提交 } }
修改方法现在test中写好修改代码
@org.junit.Test //修改 public void update(){ SqlSession s = MybatisUtils.getSession(); User u = new User(); //要修改的值 u.setUid(1); u.setUname("11111"); u.setUage(23); s.update("edit",u); s.commit(); } }

再到UserMapper中写sql修改语句
<update id="edit" parameterType="User"> <!-- 井号后面是调用uame中的属性--> update users set uname=#{uname},uage=#{uage} where uid=#{uid} </update>
update中的 id对应test中的s.update("edit",u)中的edit
添加和查询相同

所有语句写法按照删除顺序写
先在UserMapper中写
<!-- 先在SQL中写sql语句正确之后再写到这里 --> <delete id="del" parameterType="int"> delete from users where uid=#{uid} </delete>

再在test写
SqlSession s = MybatisUtils.getSession();所有增删改查都要写这一句
s用于公共的语句调用像
s.delete("del",1); s.commit();
@org.junit.Test public void delete(){ SqlSession s = MybatisUtils.getSession(); s.delete("del",1); s.commit(); }


浙公网安备 33010602011771号