发表于: 2017-07-11 01:04:37
1 1515
今天完成的事情:(注:这是零点后写的日报,所以这是2017.7.10的日报)
17.编写DAO,分别JdbcTemplate和Mybatis连接数据库,注意使用JDBCTemplate的时候分离Interface和Imple,使用Mybatis的时候注意理解为什么不需要Impl,注意遵守命名规范。
类、方法、变量名按以下连接规范书写,还不会写test,先写了个main方法来测试
http://blog.csdn.net/tristansmile/article/details/7989670
JdbcTemlpate部分:
项目结构:
Dao:
public class UserInterfaceImplDao implements UserInterfaceDao {
private JdbcTemplate jdbcTemplate;
private DataSource dataSource;
public void setDataSource(DataSource ds) {
this.dataSource = ds;
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public void addUser(User user) {
String sql = "INSERT INTO user(user_name,password,sex) value(?,?,?)";
jdbcTemplate.update(sql,user.getUser_name(),user.getPassword(),user.getSex());
}
}
Spring配置:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="cn.summerwaves"/>
<!--配置数据库 -->
<context:property-placeholder location="jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url}"
p:username="${jdbc.usename}"
p:password="${jdbc.password}"/>
<bean id="UserInterfaceImplDao"
class="cn.summerwaves.dao.UserInterfaceImplDao">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
测试:
public class Launcher {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("context.xml");
UserInterfaceImplDao userInterfaceImplDao = (UserInterfaceImplDao)context.getBean("UserInterfaceImplDao");
String[] user_name = { "Wang", "Hui", "Yu", "Yuan", "Yuan", "Yang"};
String[] password = { "1612151", "1151515", "2185410", "20151552", "22151152", "2151511" };
int[] sex = {1, 2, 1, 2, 1, 2};
User user = null;
List<User> users = null;
System.out.println("---------addUser-------------");
for(int i = 0;i<user_name.length;i++) {
user = new User(user_name[i], password[i], sex[i]);
userInterfaceImplDao.addUser(user);
}
}
}
Mybatis部分:
项目结构:
mapper总配置:
<configuration>
<!-- 引用配置文件 -->
<properties resource="jdbc.properties"/>
<!-- 别名 -->
<typeAliases>
<typeAlias alias="user" type="cn.summerwaves.domain.User"/>
</typeAliases>
<!-- 环境参数配置 -->
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 具体的mapper文件地址 -->
<mappers>
<mapper resource="cn/summerwaves/mapper/UserMapper.xml"/>
</mappers>
</configuration>
单独mapper配置:
<mapper namespace="cn.summerwaves.mapper.UserMapper">
<insert id="saveUser" parameterType="user">
INSERT INTO user(user_name,password,sex)VALUE (#{user_name},#{password},#{sex})
</insert>
</mapper>
Session工厂:
public class SWSessionFactory {
private static SqlSessionFactory sqlSessionFactory = null;
static {
try {
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession() {
return sqlSessionFactory.openSession();
}
public static SqlSessionFactory getSqlSessionFactory() {
return sqlSessionFactory;
}
}
测试:
public class TestInsert {
public static void main(String[] args) throws Exception {
SqlSession session = SWSessionFactory.getSqlSession();
User user = new User("wang","1215",1);
session.insert("cn.summerwaves.mapper.UserMapper.saveUser", user);
session.commit();
session.close();
System.out.println("addUser");
}
}
明天计划的事情:
昨天和今天把Spring、JdbcTemplate、mybatis的配置方法又看了一下,自己写的时候遇到了问题,而且只是能连接数据库,还不知道怎么用这两个工具操作数据库,明天再好好看下吧,Junit也看下,争取可以写出今天没有能写出的测试方法
遇到的困难:
JdbcTemplate部分:
代码中和bean配置里的大小写不一致,后面仔细核对了才发现,浪费了很多时间
mybatis部分:
遇到java.io.IOException: Could not find resource xxxx.xml异常报错
网上查到了方法,eclipse直接在所提示文件上右键buildpath,
intellij有三个方法,详细的在下方链接
http://blog.csdn.net/u010648555/article/details/70880425
收获:
虽然是按照别人的demo写的,但是从中学习到了如何用JdbcTemplate和Mybatis连接数据库的方法
评论