本寶寶菜鳥一枚,這個項目獻給還在學的朋友們,第一次寫,寫的不好不要介意。好了直接上一個以前寫的小demo,很簡單,也很好理解直接copy出去改改就能運行了,包需要自己見,架包需要自己導,頁面自己寫個簡單的測試一下就能跑起來了,,獻丑了!
db.properties文件:數據庫用的是mysql
dbcp.driver=com.mysql.jdbc.Driver
dbcp.validationQuery=SELECT 1
dbcp.url=jdbc:mysql://localhost:3306/這里寫你的數據庫名字?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
dbcp.username=root
dbcp.password=root
dbcp.init=1
dbcp.max=5
dbcp.min=2
dbcp.defaultAutoCommit=true
dbcp.test_sql=select 1 from dual
最簡單的mybatis.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>
<!-- setttings屬性設置 -->
<settings>
<!-- 全局映射器啟用緩存 -->
<setting name="cacheEnabled" value="true" />
<!-- 查詢時, 關閉關聯對象即時加載以提高性能 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 設置關聯對象加載的形態, 此處為按需加載字段(加載字段由 SQL指 定) , 不會加載關聯表的所有字段, 以提高性能 -->
<setting name="aggressiveLazyLoading" value="true" />
<!-- 對於未知的 SQL 查詢, 允許返回不同的結果集以達到通用的效果 -->
<setting name="multipleResultSetsEnabled" value="true" />
<!-- 允許使用列標簽代替列名 -->
<setting name="useColumnLabel" value="true" />
<!-- 允許使用自定義的主鍵值(比如由程序生成的 UUID 32 位編碼作為 鍵值) , 數據表的 PK 生成策略將被覆蓋 -->
<setting name="useGeneratedKeys" value="true" />
<!-- 給予被嵌套的 resultMap 以字段-屬性的映射支持 -->
<setting name="autoMappingBehavior" value="FULL" />
<!-- 對於批量更新操作緩存 SQL 以提高性能 -->
<setting name="defaultExecutorType" value="BATCH" />
<!-- 數據庫超過 25000 秒仍未響應則超時 -->
<setting name="defaultStatementTimeout" value="25000" />
</settings>
<!-- alias -->
<typeAliases>
<typeAlias alias="user" type="這里是所要寫的模型bean"></typeAlias>
</typeAliases>
</configuration>
這里是最簡單的spring.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:c="http://www.springframework.org/schema/c" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
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
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 這里寫你所需要掃描控制層包,類不寫 -->
<context:component-scan base-package="com.testing">
<!-- 包下掃描類的時候,不掃描Controller注解的類 -->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 引入資源文件 ,里面配置的是數據庫連接的幾大要素-->
<context:property-placeholder location="classpath:db.properties" />
<!-- 數據庫連接池 -->
<bean name="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${dbcp.driver}"></property>
<property name="url" value="${dbcp.url}"></property>
<property name="username" value="${dbcp.username}"></property>
<property name="password" value="${dbcp.password}"></property>
<property name="initialSize" value="${dbcp.init}"></property>
<property name="maxIdle" value="${dbcp.max}"></property>
<property name="minIdle" value="${dbcp.min}"></property>
<property name="defaultAutoCommit" value="${dbcp.defaultAutoCommit}"></property>
<property name="validationQuery" value="${dbcp.test_sql}"></property>
</bean>
<!-- mybatis的sessionFactory -->
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 加載數據源 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 關聯mybatis主配置文件 -->
<property name="configLocation" value="classpath:mybatis.xml"></property>
<!-- 關聯映射sql文件 -->
<property name="mapperLocations" value="classpath:com/testing/mapper/*.xml"></property>
</bean>
<!-- mybatis的SqlSessionTemplate -->
<bean id="session" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="sessionFactory"></constructor-arg>
</bean>
</beans>
spring-mvc.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:c="http://www.springframework.org/schema/c" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
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
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- -掃描只包含controller控制器層- -->
<context:component-scan base-package="com.testing">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:include-filter>
</context:component-scan>
</beans>
剩下的就是包了:主要是模型bean層 控制層controller的包 主要放映射文件的包 還有一個是service包
這是項目結構:
lib:
bean層里面的就不寫了很簡單,這里主要寫一下服務層service和mapper映射文件還有controller層:
mapper映射文件:
<?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.slee">
<select id="select" resultType="slee">
select * from sleeParams
</select>
<delete id="deleteById" parameterType="slee">
delete from sleeParams where
<if test="sleeParamsId!=null and sleeParamsId !=''">
sleeParamsId=#{sleeParamsId}
</if>
</delete>
<update id="update" parameterType="slee">
update sleeParams set
sleeParamsJx=#{sleeParamsJx}
,sleeParamsPcbType=#{sleeParamsPcbType}
,sleeParamsEMS=#{sleeParamsEMS}
,sleeParamscode=#{sleeParamscode}
,sleeParamsBBH=#{sleeParamsBBH}
,sleeParamsMarkeCode=#{sleeParamsMarkeCode}
,sleeParamsStatus=#{sleeParamsStatus}
where sleeParamsId=#{sleeParamsId}
</update>
<insert id="insertSlee" parameterType="slee"
useGeneratedKeys="true" keyProperty="sleeParamsId">
insert into sleeParams
(sleeParamsId,
sleeParamsJx,
sleeParamsPcbType,
sleeParamsEMS,
sleeParamscode,
sleeParamsBBH,
sleeParamsMarkeCode)
values
(#{sleeParamsId},
#{sleeParamsJx},
#{sleeParamsPcbType},
#{sleeParamsEMS},
#{sleeParamscode},
#{sleeParamsBBH},
#{sleeParamsMarkeCode}
)
</insert>
<select id="selectById" resultType="slee" parameterType="slee">
select * from sleeParams where sleeParamsId=#{sleeParamsId}
</select>
</mapper>
服務層service:
package com.testing.service;
import java.util.List;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.testing.bean.SleeParamsBean;
@Service
public class SleeService {
@Autowired
private SqlSessionTemplate session;
public boolean add(SleeParamsBean bean){
try {
session.insert("com.slee.insertSlee", bean);
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public List<SleeParamsBean> query( SleeParamsBean bean){
return session.selectList("com.slee.select",bean );
}
public boolean delete(SleeParamsBean bean){
try {
session.delete("com.slee.deleteById", bean);
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public boolean update(SleeParamsBean bean){
try {
session.update("com.slee.update", bean);
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public List<SleeParamsBean> find(SleeParamsBean bean){
return session.selectList("com.slee.selectById", bean.getSleeParamsId());
}
}
控制層controller:
package com.testing.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.testing.bean.SleeParamsBean;
import com.testing.service.SleeService;
@Controller
public class SleeParamsController {
private Log log = LogFactory.getLog(SleeParamsController.class);
@Autowired
private SleeService service;
/*
* 查詢
*/
@RequestMapping(value="/querySlee")
public String query(HttpServletRequest request){
log.info("進入查詢controller層==============");
SleeParamsBean bean = new SleeParamsBean();
List list = service.query(bean);
request.setAttribute("querylist", list);
return "querySlee.jsp";
}
/*
* 添加
*/
@RequestMapping(value="addSlee",method=RequestMethod.POST)
public String add(SleeParamsBean bean,HttpServletRequest request){
log.info("進入添加的controller層");
boolean flag = service.add(bean);
if (flag) {
request.setAttribute("message","添加成功!");
}else {
request.setAttribute("message", "添加失敗!");
}
return "addSlee.jsp";
}
/*
* 查詢單個
*/
@RequestMapping(value="findSlee")
public String find(HttpServletRequest request,SleeParamsBean bean){
log.info("進入查詢單個數據controller層");
SleeParamsBean bean2 = service.find(bean).get(0);
request.setAttribute("slee",bean2 );
return "updateSlee.jsp";
}
@RequestMapping(value="updateSlee",method=RequestMethod.POST)
public String update(SleeParamsBean bean , HttpServletRequest request){
log.info("進入修改的controller層");
boolean flag = service.update(bean);
if (flag) {
request.setAttribute("message", "修改成功");
}else {
request.setAttribute("message", "修改失敗");
}
return "querySlee.jsp";
}
/*
* 刪除
*/
@RequestMapping(value="deleteSlee")
public String delete(HttpServletRequest request,SleeParamsBean bean){
log.info("進入刪除的頁面");
boolean flag = service.delete(bean);
if (flag) {
request.setAttribute("message", "刪除成功");
}else{
request.setAttribute("message", "刪除失敗");
}
return "querySlee.jsp";
}
}