发表于: 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、可以去了解下开发工具的快捷键,可以省事很多







返回列表 返回列表
评论

    分享到