发表于: 2018-01-08 23:59:37
1 617
完成
1.通过Mybatis连接数据库
Mybatis的整体流程图


在mysql中新建表user[id,name,age]
新建User类,与db的表对应
package cn.wlj;
public class User {
public User( int id, String name,int age){
super();
this.id = id;
this.name = name;
this.age = age;
}
private int id;
private String name;
private int age;
private int getID () {
return id;
}
public void setID ( int id){
this.id = id;
}
public String getName () {
return name;
}
public void setName ( String name){
this.name = name;
}
public int getAge () {
return age;
}
public void setAge ( int age){
this.age = age;
}
@Override
public String toString () {
return "User [id=" + id + ",name=" + name + ",age=" + age + "]";
}
}
配置文件conf.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--
development:开发模式
work:工作模式
-->
<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/baomingtie?autoReconnect=true&useUnicode=true&characterEncoding=utf8" />
<property name="username" value="root" />
<property name="password" value="1234" />
</dataSource>
</environment>
</environments>
<mappers><!-- 在conf.xml文件中注册Mapper.xml文件和Mapper类 -->
<mapper resource="userMapper.xml" />
</mappers>
</configuration>
新建userMapper.xml,添加数据库操作语句
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
为了使用mapper的标签,在此要在Window-Preference-Xml Catalog中配置mybatis-3-mapper.dtd,
key=-//mybatis.org//DTD Mapper 3.0//EN
-->
<mapper namespace="userMapper">
<select id="getUser" parameterType="int" resultType="cn.wlj.User">
select * from users where id=#{id}
</select>
<!-- 添加,参数是一个user对象 -->
<insert id="addUser" parameterType="cn.wlj.User">
insert into users(name,age) values(#{name},#{age})
</insert>
<!-- 更新,参数是一个user对象 -->
<insert id="updateUser" parameterType="cn.wlj.User">
update users set name=#{name}, age=#{age} where id=#{id}
</insert>
<!-- 添加,参数是一个user对象 -->
<insert id="deleteUser" parameterType="int">
delete from users where id=#{id}
</insert>
<!-- 返回一个list,resultType="包名+类名":必须在类中有个无参的构造函数,不然会报错:
java.lang.NoSuchMethodException: com.mlxs.mybatis.test1.User.<init>()
Caused by: java.lang.NoSuchMethodException: com.mlxs.mybatis.test1.User.<init>()
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getDeclaredConstructor(Class.java:1985)
at org.apache.ibatis.reflection.factory.DefaultObjectFactory.instantiateClass(DefaultObjectFactory.java:57)
-->
<select id="selectALLUsers" resultType="cn.wlj.User">
select * from users
</select>
</mapper>
添加测试类,获取一个user的信息
package cn.wlj;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class _Test1SelectOne {
public static void main(String[] args) throws IOException {
//加载mybatis的xml文件(同时加载关联的映射文件)
//1.使用类加载器加载mybatis的配置文件
//InputStream config = _Test1SelectOne.class.getClassLoader().getResourceAsStream("conf.xml");
//2.使用mybatis的Resources类加载
Reader config = Resources.getResourceAsReader("conf.xml");
//创建sqlSessionFactory
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(config);
//创建sqlSession,执行mapper.xml中的sql语句
SqlSession sqlSession = sessionFactory.openSession();
//执行映射文件中的sql(namespace + select的id)
String sql = "userMapper.getUser";
User user = sqlSession.selectOne(sql, 1);//查询id=1
//关闭session
sqlSession.close();
System.out.println(user);
}
}
结果如下,查询数据库成功
2.初步了解Spring(www.cnblogs.com/bangchen/p/6693171.html)
1). spring是什么?
Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。
2).Spring能帮我们做什么?
一.Spring能帮我们根据配置文件创建及组装对象之间的依赖关系。
二.Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
三、在传统应用程序当中,我们如何来完成数据库事务管理?需要一系列“获取连接,执行SQL,提交或回滚事务,关闭连接”,而且还要保证在最后一定要关闭连接,多么可怕的事情,而且也很无聊;如果采用Spring,我们只需获取连接,执行SQL,其他的都交给Spring来管理了,简单吧。所以,Spring能非常简单的帮我们管理数据库事务。
四、Spring还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板,来方便数据库访问。
五、Spring还提供与第三方Web(如Struts、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。
六、Spring能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)。
3). 如何学好Spring
要学好Spring,首先要明确Spring是个什么东西,能帮我们做些什么事情,知道了这些然后做个简单的例子,这样就基本知道怎么使用Spring了。Spring核心是IoC容器,所以一定要透彻理解什么是IoC容器,以及如何配置及使用容器,其他所有技术都是基于容器实现的;理解好IoC后,接下来是面向切面编程,首先还是明确概念,基本配置,最后是实现原理,接下来就是数据库事务管理,其实Spring管理事务是通过面向切面编程实现的,所以基础很重要,IoC容器和面向切面编程搞定后,其余都是基于这俩东西的实现,学起来就更加轻松了。要学好Spring不能急,一定要把基础打牢,基础牢固了,这就是磨刀不误砍柴工。
计划
1.用spring中的JDBCtemplate连接数据库
2.Mybatis的增删改查用maven实现
3.继续学习spring
问题
1.mybatis的增删改查我用的是java项目,导致需要从外部导入许多jar,不能保证每个jar包都适合需求,浪费了不少时间。应当用maven项目来写,明天继续。
2.jdbctemplate连接数据库,我找的实例没有运行条件,导致最后需要spring跑测试,有难度。
收获
1.学习还是要以任务为主导,一个一个概念弄明白,弄清楚项目的逻辑,其他不重要的不要花太多时间。
2.还有,心态不要崩,吃顿饭就好了


评论