最近公司想做一個萬能遙控器,可以通過手機APP,遠程遙控到萬能遙控器,最後由萬能遙控器通過紅外線發射控制家居設備,如空調,窗簾等
如果要開發這麼一個遙控器,不難發現這部分離不開雲端的開發。目前公司還沒有做後臺的人員,而我是做Android開發的,我們公司是小公司,就目前這個項目來看,通過我的評估,招聘相關人員來開發,成本還是挺大的,所以公司是不願意招聘後臺人員的,那怎麼辦呢?我去做咯,誰叫我是全能的呢,不要笑,我也是做過後臺開發的,只是以前是打雜的!
不扯了,迴歸正題。所有的軟件開發的流程,大致如下:
第一:配置
第二:demo
第三:實戰
好了,
第一步,配置springmvc+mybatis
1.導入jar,導入springMVC和mybatis相關的所有jar包
2.創建spring配置文件
3.配置數據源
4.創建sqlsessionFactory
5.配置事務
6.配置事務的傳播性
7.配置aop
8.配置映射mapper
9.配置自動掃描
相關demo和截圖
1.導入jar,導入springMVC和mybatis相關的所有jar包
2.創建spring配置文件
在源碼目錄下創建beans.xml的spring配置文件和jdbc.properties數據庫配置文件
其中,jdbc.properties的配置demo如下:
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/employee
username=psc
password=powerstronic
3.配置數據源
在beans.xml文件下,添加數據源
<!-- 將屬性資源文件加載到Spring的上下文中 -->
<bean class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<!-- 配置數據源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driverClass}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
4.創建sqlsessionFactory
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 指定數據源 -->
<property name="dataSource" ref="dataSource"/>
<!-- 指定mybatis的配置文件 -->
<property name="configLocation" value="classpath:MyBatis-config.xml"/>
</bean>
其中,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="com.psc.mrkong.user.User" alias="user"/>
</typeAliases>
<mappers>
<mapper resource="com/psc/mrkong/mapper/User.xml"/>
</mappers>
</configuration>
5.配置事務
<!-- 配置事務 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
6.配置事務的傳播性
<!-- 指定事務的傳播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="find*" read-only="true"/>
<tx:method name="get*" read-only="true"/>
<tx:method name="query*" read-only="true"/>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="put*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="change*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
7.配置aop
<!-- 配置aop -->
<aop:config>
<aop:pointcut expression="execution(* com.psc.mrkong.service..*.*(..))" id="pointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config>
8.配置映射mapper
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.psc.mrkong.mapper"></property>
</bean>
9.配置自動掃描,在beans.xml下第一行子節點下,添加如下配置
OK,到這裏,我們已經把springMVC和mybatis的基本配置配置完成,接下來我們寫一個測試demo,也就是
第二,demo
1.完成最基本的測試,創建一個包含main函數的類,用來測試獲取sqlSessionFactoryBean對象,然後打印出來,運行效果,可以正常把sqlSessionFactory對象打印出來
demo如下:
package com.psc.test;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.psc.mrkong.service.UserService;
public class MainTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
SqlSessionFactory sqlSessionFactory=(SqlSessionFactory) context.getBean("sqlSessionFactoryBean");
System.out.println(sqlSessionFactory);
}
}
2.測試完成數據庫的連接和插入一條記錄
- 創建User的bean類
package com.psc.mrkong.po;
public class User {
private int sid;
private String ename;
private int eage;
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public int getEage() {
return eage;
}
public void setEage(int eage) {
this.eage = eage;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
}
- 創建mapper接口UserMapper
package com.psc.mrkong.mapper;
import com.psc.mrkong.po.User;
public interface UserMapper {
int addUser(User user);
}
- 創建mapper的sql映射配置文件User.xml,實現sql插入記錄功能
<?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.psc.mrkong.mapper.UserMapper">
<insert id="addUser" parameterType="user">
insert into emp ( ename,age) values ( #{ename},#{eage})
</insert>
</mapper>
- 創建service接口和實現類
service接口UserService
package com.psc.mrkong.service;
import com.psc.mrkong.po.User;
public interface UserService {
boolean addUser(User user);
}
service接口實現類
package com.psc.mrkong.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.psc.mrkong.mapper.UserMapper;
import com.psc.mrkong.po.User;
import com.psc.mrkong.service.UserService;
public class UserServiceImpl implements UserService{
UserMapper userMapper;
@Override
public boolean addUser(User user) {
int add = userMapper.addUser(user);
return add>0;
}
}
- 註解獲取mapper接口及其實現
package com.psc.mrkong.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.psc.mrkong.mapper.UserMapper;
import com.psc.mrkong.po.User;
import com.psc.mrkong.service.UserService;
//註解註冊service
@Service
public class UserServiceImpl implements UserService{
//註解獲取mapper實現
@Resource(name="userMapper")
UserMapper userMapper;
@Override
public boolean addUser(User user) {
int add = userMapper.addUser(user);
return add>0;
}
}
- main函數測試demo
package com.psc.test;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.psc.mrkong.service.UserService;
public class MainTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
UserService userService=(UserService) context.getBean("userServiceImpl");
User user=new User();
user.setEname("大亨");
user.setEage(30);
System.out.println(userService.addUser(user));
}
}
運行效果:成功添加一條記錄到數據庫中
第三,實戰
其實,實戰就是對springMVC+mybatis,對數據庫進行增刪改查的操作,基本參考第二步來實現