一、現附上項目層級目錄以及所需要的jar包:
二、Spring核心配置文件、Mybatis核心配置文件以及日誌文件:
1.Spring核心配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 讀取db.properties -->
<context:property-placeholder location="db.properties"/>
<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 配置mybatis sqlSessionFactory -->
<bean id = "sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 告訴spring mybatis核心配置文件的位置 -->
<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
</bean>
<!-- mapper動態代理開發 -->
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<!-- 注入sqlSessionFactory -->
<property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
<!-- 配置接口 -->
<property name="mapperInterface" value="cn.skh.mapper.UserMapper"/>
</bean>
<!-- mapper動態掃描開發 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="cn.skh.mapper"/>
</bean>
</beans>
2.Mybatis核心配置文件:
<?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>
<!-- 推薦使用package包的形式來配置別名
包的形式會掃描主包及子包下的所有文件
以對象類名爲別名 不區分類名的大小寫,推薦使用小寫
在UserMapper.xml的返回值類型中或參數應用別名
-->
<typeAliases>
<!-- <typeAlias type="cn.skh.bean.User" alias="user"/> -->
<package name="cn.skh.bean"/>
</typeAliases>
<mappers>
<package name="cn.skh.mapper"/>
</mappers>
</configuration>
3.日誌文件:
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
三、JavaBean以及Mapper文件:
1.javaBean:
package cn.skh.bean;
/**
* 需要注意的地方 bean中的屬性名稱要和數據庫中的屬性名稱相對性
* 屬性和數據庫中字段的名稱要一樣 不能這個是name 那個是username
* @author SKH
*
*/
public class User {
private int id;
private String name;
private String password;
private String sex;
private int uid;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public 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 String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password + ", sex=" + sex + ", uid=" + uid + "]";
}
public User(int id, String name, String password, String sex, int uid) {
super();
this.id = id;
this.name = name;
this.password = password;
this.sex = sex;
this.uid = uid;
}
public User() {
}
}
2.mapper.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 namespace="cn.skh.mapper.UserMapper"><!-- 可能會有多個mapper配置文件 相當於給mapper配置文件另起一個名字 -->
<!-- parameterType 爲sql語句中的參數類型
resultType 查詢結果返回類型
-->
<select id="selectById" parameterType="int" resultType="user">
select * from qwe where id = #{id}
</select>
<insert id="insertOne" parameterType="user">
insert into qwe values(#{id},#{name},#{password},#{sex},#{uid})
</insert>
</mapper>
四、測試類:
package cn.skh.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.skh.bean.User;
import cn.skh.mapper.UserMapper;
public class MapperTest {
@Test
public void test() {
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper mapper = ac.getBean(UserMapper.class);
User user = mapper.selectById(0);
System.out.println(user);
}
@Test
public void test2() {
User u = new User(20,"miku","mlfl","女",1);
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper mapper = ac.getBean(UserMapper.class);
mapper.insertOne(u);
}
}
test輸出:
test2()輸出:
都可以成功的對數據庫進行操作。