发表于: 2018-03-20 21:16:38

1 472


今天完成的事情:

(今天完成了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增删查改数据库)


返回列表 返回列表
评论

    分享到