发表于: 2018-09-10 01:06:01
1 510
今天学习内容:
一、mybatis学习:
持久性框架:
瞬态:new 之后 再回收就没有了
持久态:状态保持住的对象
目的:操作数据库对象
把sql代码和java代码分开了
面向配置的编程
动态sql
1、导入jar包,日志文件log4j.properties, debug级别
2、建数据库并建立表
3、建立表的映射类:有几个字段就是几个属性
4、新建基本配置 (数据库链接信息,map配置文件的位置)
<typeAliases>
<typeAlias alias="Student" type="com.imooc.bean.Student"/>
<typeAlias alias="Author" type="com.imooc.bean.Author"/>
</typeAliases>//在配置文件中简化类的写法
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/paixu?; characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="718520"/>
</dataSource>
</environment>
</environments>
数据库连接参数
<mappers>
<mapper resource= "com/imooc/xml/mapper.xml"/>
<mapper resource= "com/imooc/xml/author.xml"/>
</mappers>//传递的映射文件路径,映射配置文件可以有多个,都在里面要写上
5、新建map配置文件(映射文件):sql语句,每个语句都有id标识
<mapper namespace="com.imooc.xml.mapper">
<select id="selectone" parameterType="String" resultType="com.imooc.bean.Student">
select * from paixu1 where id = #{id}
</select>
<insert id="insertone" parameterType="Student" statementType="PREPARED" >
insert into paixu1 (age,name,id) values (#{age},#{name},#{id})
</insert>
<update id="updateone" parameterType="Student">
update paixu1 set age=#{age},name=#{name} where id=#{id};
</update>
<delete id="deleteone" parameterType="Student">
delete from paixu1 where id=#{id}
</delete>
<select id="selectdialog" parameterType="HashMap" resultType="Student">
select * from paixu1 where name=#{name} and age=#{age}
</select>
<select id="selectlist" resultType="Student">
select * from paixu1
</select>
</mapper>
文件中配置增删改查的语句,要设置单一的id属性,resuttype为返回值属性,parameter为传入参数属性
6、在主类中的简单增删改查模板
public static void main(String[] args){
SalSession session=null;//为null后可以在下面被调用,因为trycatch中不一定执行
String resource="主配置文件的src下的路径"
try{
Reader read=Resources.getResourceAsReader(resource);
sqlsessionfactory factory=new sqlsessionfactorybuilder().builde(read);
}catch(Exception e){e.printStackTrace();}
session=factory.opensession();
try{
设置实例类属性,传到下面方法中
调用方法
session.commit();
}catch(){
session.close();
}
}
7、
hashmap的输入值可以用来验证登录。(用本类对象传递也可以)
如果返回多条就返回list类
8、事务处理:案例:网站有用户列表,添加作者也要先添加用户。
(事务处理模板)
<transcationManager type="JDBC"/>
try{
session=sqlsessionfac.openSession(false);//关闭自动提交
session.commit();
}catch(Exception e){
ss.rollback();//回滚,所在代码执行完才添加
}
二:intell idea 安装配置(之前用myeclipse)
登录指令:mysql -hlocalhost -uroot -p718520
三、mysql安装配置(之前用sql server)
四、明天计划完成的事情:
1、用intell idea练习maven项目(昨天用myeclipse创建工程有丢jar包的问题,没有解决)
2、继续学习spring,尝试吧spring和mybatise还有junit结合使用
3、复习
五:
1、问题:今天问题卡了半天,mybatis链接mysql的学习,一直报错,查不到原因?
2、解决:
删除重写
六:总结收获:
1、学习了mybatis简单增删改查和简单的事物管理
2、写代码能复制就复制,尽量不手写,容易出错
3、心态是最重要的,实在解决不了先跳过
4、放慢学习进度,学得快,忘得快,多敲代码
5、报错可以直接黏贴报错原因去搜索,效率高
6、可以去了解下开发工具的快捷键,可以省事很多
评论