spring-mybatis

来源:互联网 发布:百度自然排名优化费用 编辑:程序博客网 时间:2024/04/29 18:13

spring 集成mybatis

--->1. 添加Jar 包<---

【mybatis】
mybatis-3.2.0.jar
mybatis-spring-1.1.1.jar
log4j-1.2.17.jar
【spring】
spring-aop-3.2.0.RELEASE.jar
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-core-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
spring-jdbc-3.2.0.RELEASE.jar
spring-test-3.2.4.RELEASE.jar
spring-tx-3.2.0.RELEASE.jar
aopalliance-1.0.jar
cglib-nodep-2.2.3.jar
commons-logging-1.1.1.jar
【MYSQL 驱动包】
mysql-connector-java-5.0.4-bin.jar


--->2. 创建数据库表<---

CREATE TABLE s_user(
user_id INT AUTO_INCREMENT PRIMARY KEY,
user_name VARCHAR(30),
user_birthday DATE,
user_salary DOUBLE
)


--->3. 创建实体类: User<---

package com.sm.entity;import java.util.Date;public class User { private int id; private String name; private Date birthday; private double salary; // set,get 方法 public User() {  super(); } public User(int id, String name, Date birthday, double salary) {  super();  this.id = id;  this.name = name;  this.birthday = birthday;  this.salary = salary; } 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 Date getBirthday() {  return birthday; } public void setBirthday(Date birthday) {  this.birthday = birthday; } public double getSalary() {  return salary; } public void setSalary(double salary) {  this.salary = salary; } @Override public String toString() {  return "User [id=" + id + ", name=" + name + ", birthday=" + birthday + ", salary=" + salary + "]"; } }


 

--->4.创建DAO 接口: UserMapper (起名为类似:XXXMapper)<---

package com.sm.mapper;import java.util.List;import com.sm.entity.User;public interface UserMapper { void save(User user); void update(User user); void delete(int id); User findById(int id); List<User> findAll();}


 


--->5.创建SQL 映射文件: 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"><!--  namespace:必须与对应的接口类的全类名一致 --><mapper namespace="com.sm.mapper.UserMapper"> <resultMap type="User" id="userResult">  <result column="user_id" property="id" />  <result column="user_name" property="name" />  <result column="user_birthday" property="birthday" />  <result column="user_salary" property="salary" /> </resultMap>  <!-- id必须与对应的接口的某个对应方法的名一致 --> <insert id="save" keyColumn="user_id" keyProperty="id" useGeneratedKeys="true">  insert into s_user(user_name,user_birthday,user_salary)  values(#{name},#{birthday},#{salary}) </insert>  <update id="update">  update s_user  set user_name = #{name},user_birthday = #{birthday},user_salary = #{salary}  where user_id = #{id} </update>  <delete id="delete">  delete from s_user where user_id = #{id} </delete>  <select id="findById" resultMap="userResult">  select * from s_user where user_id = #{id} </select>  <select id="findAll" resultMap="userResult">  select * from s_user </select></mapper>



--->6.在src下创建spring 的配置文件: beans.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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> <!-- 1. 数据源 : DriverManagerDataSource --> <bean id="ds"  class="org.springframework.jdbc.datasource.DriverManagerDataSource">  <property name="driverClassName" value="com.mysql.jdbc.Driver" />  <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />  <property name="username" value="root" />  <property name="password" value="123!qwe" /> </bean> <!-- 2. mybatis 的SqlSession 的工厂: SqlSessionFactoryBean --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  <property name="dataSource" ref="ds" />  <property name="typeAliasesPackage" value="com.sm.entity" /> </bean> <!-- 3. mybatis 自动扫描加载Sql 映射文件 : MapperScannerConfigurer --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  <property name="basePackage" value="com.sm.mapper" />  <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> <!-- 4. 事务管理 : DataSourceTransactionManager --> <bean id="txManager"  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  <property name="dataSource" ref="ds" /> </bean> <!-- 5. 使用声明式事务 --> <tx:annotation-driven transaction-manager="txManager" /></beans>



--->7.在src下创建mybatis 的配置文件: mybatis-config.xml<---

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- Spring 整合myBatis 后,这个配置文件基本可以不要了--><!-- 设置外部配置文件 --><!-- 设置类别名 --><!-- 设置数据库连接环境 --><!-- 映射文件 --></configuration>



--->8.进行整体配置的测试(创建一个junit4的测试类)<---

package com.sm.test;import java.util.Date;import java.util.List;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.sm.entity.User;import com.sm.mapper.UserMapper;@RunWith(SpringJUnit4ClassRunner.class) //使用Springtest框架@ContextConfiguration("/beans.xml") // 加载配置public class SMTest { @Autowired // 注入 private UserMapper userMapper; @Test public void save() {  User user = new User();  user.setBirthday(new Date());  user.setName("marry");  user.setSalary(300);  userMapper.save(user);  System.out.println(user.getId()); } @Test public void update() {  User user = userMapper.findById(2);  user.setSalary(2000);  userMapper.update(user); } @Test public void delete() {  userMapper.delete(3); } @Test public void findById() {  User user = userMapper.findById(1);  System.out.println(user); } @Test public void findAll() {  List<User> users = userMapper.findAll();  System.out.println(users); }}

0 0