`
herozk
  • 浏览: 1437 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

学习整理====》Spring3.2+MyBatis3

 
阅读更多

Spring3.2整合MyBatis,我的Spring版本是3.2,MyBatis版本是3.0.4。

1.建工程,建包。

2.建立测试表:使用MySQL数据库

##数据库的脚本
drop table if exists stu;
create table stu(
	sid int primary key auto_increment,
	sname varchar(32),
	sage int,
	sbirth datetime
);

 3.定义bean如下:

package bean;

public class Student {
	private int id;
	private String name;
	private int age;
	private String birth;
   //省略 getter和setter方法
}

 

4.添加所需要的jar包,需要添加四类jar包:

     a).第一类spring的jar包(spring核心的和一些日志组件)

     b).第二类MyBatis的jar包

     c).第三类Mybatis-spring.jar(可在MyBATIS的官网下载)

     d).第四类驱动包+数据源包(此处使用Apache Commons的DBCP组件)

    以上jar包均可在相应官网下载得到。附件中有整个程序的截图。

 

 

5.DAO层接口定义如下:

package dao;
import bean.Student;
//DAO层接口
public interface IStudentDao {
	//添加
	public void addStudent(Student stu);
	
	//删除根据主键删除
	public void deleteStudent(int sid);
	
	//修改
	public void updateStudent(Student stu);
	
	//查询
	public Student getStudentById(int id);
	
	//分页start:表示从第几条记录开始查询 max:表示最大显示多少条记录
	public List<Student> getSome(int start,int max);
}

 6.service包中定义服务类,内部引用Dao层

package service;

import java.util.List;

import bean.Student;
import dao.IStudentDao;
//服务层。。。
public class StudentService {
	//注入dao
	private IStudentDao dao;
	
	public void add(Student stu){
		 dao.addStudent(stu);
	}
	public void delete(int sid){
		dao.deleteStudent(sid);
	}
     
	public void setDao(IStudentDao dao) {
		this.dao = dao;
	}
	public void update(Student stu){
		dao.updateStudent(stu);
	}
	public List<Student> getSome(int start,int max){
		return dao.getSome(start, max);
	}
	public Student get(int id){
		return dao.getStudentById(id);
	}
	
}

 7.下面是关键的Spring的配置文件,在src下创建名字为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:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	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:property-placeholder location="properties/db.properties"/>
	<!-- 配置数据源 -->
	<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource" 
	p:driverClassName="${driver}" p:url="${url}" p:username="${user}"
	p:password="${pwd}" />
	
	<!-- SqlSessionFactoryBean -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" >
		<property name="dataSource" ref="ds"></property>
		<!-- 设置mybatis配置文件的位置 由于数据源,SQL的映射文件等属性均在
		applicationContext文件中设置了,所以mybatis的config文件只需用来做一些
		其他设置。因此该文件可以省略不写 此处作为示例用来注册别名-->
		<property name="configLocation" value="classpath:properties/mybatis_config.xml"></property>
		<!-- 注册映射文件的位置 -->
		<property name="mapperLocations" value="bean/Student.xml"></property>
	</bean>

	<!-- 配置SqlSesionTemplate -->
	<bean id="sst" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg ref="sqlSessionFactory"></constructor-arg>
	</bean>

	<!-- dao 其中引用SqlSession SqlSessionTemplate实现了SqlSession-->
	<bean id="dao" class="dao.StudentDaoImpl">
		<!-- dao中时SqlSession 此处是具体实现类SqlSessionTemplate -->
		<property name="session" ref="sst"></property>
	</bean>

	<!-- StudentService -->
	<bean id="service" class="service.StudentService" p:dao-ref="dao" />
</beans>

 7.1 properties/db.properteis

 

##这里是数据连接信息 (必选的)
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///xx
user=root
pwd=xx

 7.2 MyBatis的配置文件 properties/mybatis_config.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>
	<typeAliases>
		<typeAlias type="bean.Student" alias="stu"/>
	</typeAliases>
</configuration>

 7.3 MyBATIS的SQL映射文件 bean/student.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="com.xxx"><!-- 命名空间:主要是避免命名的冲突 -->
	<!-- 添加学生
	获得主键数据新添加的主键:
		1.通过useGenerateKeys=true 来设置
				keyColumn:表示表中的字段
				keyProperty:表示类中的属性
		2.通过<insert>的<selectKey>来获得主键
	  -->
	<insert id="addStudent" parameterType="stu" 
	useGeneratedKeys="true" keyColumn="sid" keyProperty="id">
		insert into stu(sname,sage,sbirth)
		values(#{name},#{age},#{birth})
			<!-- 返回主键 -->
			<!-- 
		<selectKey keyProperty="id" resultType="int">
			select @@last_insert_id as sid
		</selectKey>
		 -->
		
	</insert>
	<!-- 根据ID查询 -->
	<select id="getStuById" parameterType="int"
	 resultType="stu">
	 	select sid as id,sname as name,
	 	sage as age,sbirth as birth
	 	from stu where sid=#{id}
	 </select>
	 <!-- 分页 -->
	 <select id="getSome" parameterType="map" resultType="stu">
	 	select sid as id,sname as name,sage as age
	 	,sbirth as birth from stu limit #{start},#{max}
	 </select>
</mapper>

 8.最后,测试文件

package test;

import java.util.Date;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import service.StudentService;
import bean.Student;

public class Test {

	public static void main(String[] args) {
		Student s = new Student();
		s.setName("et");
		s.setAge(123);
		s.setBirth(new Date());
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		StudentService service = ctx.getBean("service",StudentService.class);
		int i =service.add(s);
		/*Student s =(Student)service.getStudentById(1);
		System.out.println(s.getName()+"\t"+s.getAge()+"\t"+s.getBirth());
		*/
	/*	List<Student> ss = service.getSome(1,3);
		for(Student s:ss){
			System.out.println(s);
		}*/
		
	}

}

 

 最后,附件中有整个小程序的截图。。

  • 大小: 33.8 KB
分享到:
评论
1 楼 atgoingguoat 2013-05-21  
发个工程看下。
亲。

相关推荐

    Spring3.2.2 + Spring MVC3.2.2 + Mybatis3.2.3

    采用Maven管理,整理Spring3.2.2 + Spring MVC3.2.2 + Mybatis3.2.3。 本实例已经实现多对多关系,下载后请选择导入maven项目。 另:数据库已经删除表关联关系。

    SpringMVC+MyBatis+CXF+Velocity可运行实例

    2):采用spring3.2作为bean容器管理,springMVC处理请求转发,Velocity进行页面渲染,Mybatis作为数据持久层。CXF作为同步通信机制。 3):数据库进行加密访问。 4):注解的使用。 5):Vecity模板引擎页面渲染...

    Java基于SSM(Spring+SpringMVC+MyBatis)课程进度管理系统.zip

    课程进度管理系统的整体数据库的开发和设计都需要契合用户的需求,结合用户的需求开发和设计对应的数据库框架结构,将数据高效和快速的整理和收集,最终反馈给到终端用户。 3.2数据库的设计 为了确保数据的准确性,...

    百知教育spring笔记1

    根据给定的文件信息,我们可以总结出以下几个关键的知识...以上是根据给定文件信息整理的关键知识点,涵盖了Spring框架的基本概念、配置方法以及控制反转等相关内容。希望这些信息能帮助你更好地理解和应用Spring框架。

    springboot知识点整理

    学习尚硅谷视频整理的文档 Spring Boot 1 1 Spring Boot入门 4 1.1 简介 4 1.2 微服务(martin fowler发表了一篇文章) 5 1.3 环境约束 7 1.4 第一个Spring Boot项目(jar):HelloWorld 8 1.5 入门案例详解 11 ...

    ssm框架整理.docx

    SSM 框架是一种流行的 Java Web 开发框架,主要由 Spring、Spring MVC 和 MyBatis三个框架组成。下面是 SSM 框架的详细知识点总结: 一、MyBatis 框架 1.1、MyBatis 介绍 MyBatis 是一个基于 Java 的持久层框架,...

    java程序员个人简历04.docx

    + 软件环境:Oracle10g、Tomcat7.0、Struts 2.0 + Spring 3.0 + Hibernate 3.2 框架、Ajax+JSP+CSS+Jquery+JavaScript + 技术硬件环境:Windows XP + 开发工具:MyEclipse 8.5 + 项目职责: - View 层用 JSP,...

    基于ssm+vue的游戏攻略网站源码数据库.doc

    - **Spring与MyBatis的集成**:通过Spring管理MyBatis的SqlSessionFactory,实现DAO层与业务逻辑层的解耦。 ##### 4.2 Vue.js与后端接口通信 Vue.js与后端的交互主要通过Ajax技术实现,常用的库有axios。通过定义...

    开题报告ssm535基于SSM的游戏资源管理系统+vue开题报告.docx

    因此,构建一个基于SSM(Spring、Spring MVC和MyBatis)的游戏资源管理系统,旨在帮助玩家整理游戏资源,提供攻略规划,使玩家能够高效利用碎片时间,获取游戏最新资讯,提高游戏体验。 1.2 国内外研究现状 SSM...

    医院信息系统(临床诊疗、药品管理、财务管理、患者管理)

    诊疗活动由各工作站配合完成,并将临床信息进行整理、处理、汇总、统计、分析等。本系统包括以下工作站:门诊医生工作站、药房医生工作站、医技医生工作站、收费员工作站、对帐员工作站、管理员工作站。基于Spring ...

    2020年JAVA工程师简历模板.docx

    - **软件环境**:Oracle 10g、Tomcat 7.0、Struts 2.0 + Spring 3.0 + Hibernate 3.2框架、Ajax + JSP + CSS + jQuery + JavaScript技术。 - **硬件环境**:Windows XP - **开发工具**:MyEclipse 8.5 - **项目职责*...

    S2SH 框架所有jar包

    S2SH框架是Java Web开发中一种经典的整合框架,由Struts 2、Spring 2.0和Hibernate 3.2三个组件组成。这个框架集合了MVC(Model-View-Controller)架构、依赖注入(Dependency Injection)以及对象关系映射(Object-...

    基于ssm+mysql的非遗视域下喀什旅游网源码数据库.doc

    因此,构建一个基于SSM框架(Spring、Spring MVC、MyBatis)和MySQL数据库的旅游网站显得尤为重要。 #### 二、系统架构与技术选型 ##### 2.1 技术栈介绍 - **Spring**:轻量级Java开发框架,提供了控制反转(IoC...

    最新版Java视频学习路线图(内涵源码等获取方式)2.0(1).docx

    ### Java学习路线图知识点概述 ...以上就是根据提供的文档内容整理出的Java学习路线图的相关知识点。这些资源涵盖了从Java基础到高级框架的各个方面,非常适合Java初学者和希望提升技能的开发者参考学习。

    基于springboot的光影视频源码数据库.doc

    综上所述,“光影视频平台”采用了先进的技术栈,如Spring Boot、MyBatis等,并结合B/S架构设计,实现了高效的视频管理和用户体验。未来,随着技术的发展和用户需求的变化,还需要不断优化和完善系统功能,提升用户...

    JAVA工程师简历.pdf

    1. 伟业网上电商系统:这个项目采用了Struts2、Spring3.0、Hibernate3.2框架,Oracle10g数据库,以及Tomcat7.0服务器。他负责View层的JSP,Controller层的Struts,持久层的Hibernate技术,使用Ajax优化了用户体验,...

    基于ssm+jsp房屋租售网站源码数据库.doc

    因此,开发一款基于SSM(Spring、SpringMVC、MyBatis)框架结合JSP技术的房屋租售网站,不仅能够有效地解决信息管理过程中存在的问题,还能极大地提升用户体验。 #### 二、关键技术介绍 ##### 2.1 Spring框架 ...

    java_ssm网上系统调查的开发vue毕业论文.doc

    SSM框架由Spring、Spring MVC和MyBatis三个组件构成,提供了一种灵活、可扩展的Web应用开发解决方案。Spring负责依赖注入和事务管理,Spring MVC处理模型-视图-控制器架构,MyBatis则简化了SQL操作。 第 3 章 系统...

Global site tag (gtag.js) - Google Analytics