Spring+Mybatis J2SE小例总结

来源:互联网 发布:win7编程界面 编辑:程序博客网 时间:2024/06/17 02:11
package dao;import java.util.List;import model.User;public interface UserDao {public User getUser(int i);public List<User> getAllUser();public int insertUser(User u);public int updateUser(User u);public int deleteUser(int i);}

<?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="dao.UserDao"> <select id="getUser" parameterType="int" resultType="User">select * from t_user where id=#{id}</select><select id="getAllUser" resultType="User">select * from t_user</select><delete id="deleteUser" parameterType="int" >delete from t_user where id=#{id}</delete><update id="updateUser" parameterType="User">update t_user set username=#{username}, password=#{password} where id=#{id}</update><insert id="insertUser" parameterType="User">insert into t_user(username,password) values(#{username},#{password})</insert></mapper>

package model;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Component;@Component@Scope("prototype")public class User {private int id;private String username;private String password;public User() {super();}public User(String username, String password) {super();this.username = username;this.password = password;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

package service;import java.util.List;import model.User;public interface IUserSrv {public User getUser(int i);public List<User> getAllUser();public int insertUser(User u);public int updateUser(User u);public int deleteUser(int i);}

package service;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Component;import org.springframework.transaction.annotation.Transactional;import dao.UserDao;import model.User;@Component@Transactionalpublic class UserSrv implements IUserSrv {@Resourceprivate  UserDao userDao;@Overridepublic User getUser(int i) {// TODO 自动生成的方法存根return userDao.getUser(i);}@Overridepublic List<User> getAllUser() {// TODO 自动生成的方法存根return userDao.getAllUser();}@Overridepublic int insertUser(User u) {// TODO 自动生成的方法存根return userDao.insertUser(u);}@Overridepublic int updateUser(User u) {// TODO 自动生成的方法存根return userDao.updateUser(u);}@Overridepublic int deleteUser(int i) {// TODO 自动生成的方法存根return userDao.deleteUser(i);}}

package test;import javax.annotation.Resource;import org.springframework.stereotype.Component;import model.User;import service.IUserSrv;import util.BeanHelper;@Componentpublic class Test {@Resourceprivate User user;public static void main(String[] args) {IUserSrv userSrv = (IUserSrv) BeanHelper.getBean("userSrv");System.out.println(userSrv.getUser(1).getUsername());Test t = (Test) BeanHelper.getBean("test");t.user.setUsername("dd");t.user.setPassword("xxx");System.out.println(userSrv.insertUser(t.user));}}

package util;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class BeanHelper {private BeanHelper(){}private static ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml"); public static Object getBean(String beanName){return ac.getBean(beanName);}}

<?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-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.2.xsd"><!-- 1. 数据源 : DriverManagerDataSource --><context:annotation-config></context:annotation-config><bean id="datasource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url"value="jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=UTF-8" /><property name="username" value="root" /><property name="password" value="root" /></bean><!-- 2. mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource / typeAliasesPackage --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="datasource" /><property name="typeAliasesPackage" value="model" /></bean><!-- 3. mybatis自动扫描加载Sql映射文件 : MapperScannerConfigurer sqlSessionFactory / basePackage --><bean id="config" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="dao" /><property name="sqlSessionFactory" ref="sqlSessionFactory" /></bean><!-- 4. 事务管理 : DataSourceTransactionManager --><bean id="manager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="datasource" /></bean><!-- 5. 使用声明式事务 --><tx:annotation-driven transaction-manager="manager" /><!-- 6. 扫描加载各包下的Bean --><context:component-scan base-package="service,model,test"></context:component-scan></beans>

2 0