发表于: 2018-03-20 21:16:38
1 471
今天完成的事情:
(今天完成了mybatis的增查删改
1.增 在映像配置文件中 添加
<insert id="insertUser" parameterType="User" statementType="PREPARED" keyProperty="id" useGeneratedKeys="true"> //keyProperty="id"里的id为表里的自增id
insert into mingdan (stu_name) //多个属性用,分开
values (#{stu_name})</insert>
id="insertUser"为标记id. 用来引导class
parameterType="User"代表传入的数据类型。User为java的类名 而一条没有用全名 是因为添加了一条 typeAliases (标记定义别名)
<typeAliases>
<typeAlias alias="User" type="mybatis.jopo.User"/>
</typeAliases>
在class 添加
public class TestUpdate {
public static void main(String[] args) {
String resource = "MapConfig.xml";//基本配置文件的路径
Reader reader = null;//声明一个流对象
SqlSession session;//声明一个SqlSession
try {
reader = Resources.getResourceAsReader(resource);//为流赋值。Res....为系统自带api函数。
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder() //为build 方法传入流
.build(reader);
session = sqlMapper.openSession();有了SqlSessionFactory 后 得到session
try {
User xh = new User();//建立一个新的对象
xh.setStu_name("小强");//为对象赋值
session.insert("insertUser", xh);//执行insertUser 参数位xh
session.commit();//提交消息
}
catch (Exception e){
e.printStackTrace();
}
finally {
session.close();
}
}
SqlSessionFactory代表跟数据库之间的一种链接。SqlSession 执行操作
2.简单查询
<select id="findByid" resultType="User">。
select * from mingdan where id=#{id} //查询对象所有属性
</select>
在获得session后执行
User temp=session.selectOne("findByid",1); //参数为1
System.out.println(temp.getStu_name()+" "+temp.getBrother());
session.close();
3.改
<update id="updateUser" parameterType="User"> //User为对象
UPDATE mingdan SET //给予下面create_at #{create_at}属性
create_at=#{create_at},
update_at=#{update_at},
stu_name=#{stu_name},
WHERE id=#{id}
</update>
在获得session后执行
try {
User gai=new User(); //建立一个新的对象
gai.setCreate_at("2018-3-20");//赋值
gai.setUpdate_at("2018-3-20");
gai.setStu_name("六六六");
gai.setid(33);
session.update("updateUser", gai);//执行updateUser 参数为gai
session.commit();
}
catch (Exception e){
e.printStackTrace();
}
finally {
session.close();
4.删
这里我没有使用mappers而是使用了Interface注释做接口的方法
public interface deleteUser {
@Delete("delete from mingdan where id=#{id}")
public void deleteUser(Integer id);//定义方法
在基础配置文件里添加引导
<mappers>
<mapper resource="User.xml" />
<mapper class="mybatis.jopo.deleteUser"/> //class指接口
</mappers>
try {
deleteUser ijum=session.getMapper(deleteUser.class);//实现这个接口. 开头这个deleteUser 的作用不是很懂
ijum.deleteUser(37);
session.commit();
}
catch (Exception e){
e.printStackTrace();
}
finally {
session.close();
}
5.然后junit在操作mybatis中就完成了Test)
明天计划的事情:(明天尝试JdbcTemplate,安装spring等等)
遇到的问题:(今天遇到中文乱码的问题 还是mac的锅,还好后面师兄帮我解决了)
收获:(熟练了使用mybatis增删查改数据库)
评论