发表于: 2017-11-27 23:27:33
1 694
今天完成的事:
1、MyBatis的增删改查操作。
<1>DB连接的配置文件:
再将配置文件在MyBatis的配置文件中激活
<properties resource="jdbc.properties"/>
连接数据库
<2>MyBatis主配置文件的内容:
1、注册数据库连接的属性文件,如jdbc.properties;
2、注册实体类全限定类名的别名(今天没用到);
3、配置MyBatis的运行环境
4、注册映射文件,mapper
<3>
<environments/> 中可以有多个环境,属性default是指当前MyBatis的运行环境。
<transactionManager type="JDBC"/>
指定MyBatis所用的事务管理器是JDBC,还有一种是MANAGED;
<dataSource type="POOLED">
配置MyBatis使用的数据类型,POOLED使用数据库连接池来维护连接,UNPOOLED不用连接池,每次使用都创建一个DB连接,用完后马上断开,JNDI数据源可以定义到应用外部。
<4>用于MyBatis连接数据库的工具类
private static SqlSessionFactory factory;
public static SqlSession getSqlSession(){
try {
if(factory == null){
//读取配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
//创建SqlFactory工厂
factory = new SqlSessionFactoryBuilder().build(inputStream);
}
} catch (IOException e) {
e.printStackTrace();
}
return factory.openSession();
}
Resources类用来获取配置文件,
public void deleteStudentById(int id) {
try{
session = MyBatisUtil.getSqlSession();
session.delete("deleteStudentById",id);
session.commit();
}finally {
if (session != null) session.close();
}
}
一个SqlSession接口对象对应一次数据库会话,会话以SqlSession创建开始,以SqlSession对象关闭结束。
<insert id="insertStudent">
INSERT INTO student(name,age) VALUES (#{name},#{age})
</insert>
#{ }对指定参数类型的属性值得引用,id是sql语句的标识,不能重复,在java代码中使用
commit提交事务,close关闭事务
遇到的问题:
1、上午找的例子一直跑不通,尝试百度异常信息去解决,因为一些基础概念不懂,耗时很长最后也没有解决,下午换了例子形势明朗很多。
2、对事务的了解不够,还有反射机制。
3、对数据池相关概念不了解。
明天计划:
1、MyBatis基于注解开发,一般用映射文件的方式更多。
2、Spring+MyBatis。
3、学习一下java基础的反射机制。
收获:
和今天完成的事重复
禅道:http://task.ptteng.com/zentao/task-view-14280.html
评论