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: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
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 扫描需要指定的包(包括子包),使注解生效-->
<context:component-scan base-package="dao" />
<!--数据库数据源配置--> <!-- Spring内置的连接池 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!--加载驱动类-->
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> <!-- 连接数据库必须用到mysql 连接器 jar包-->
<!--数据库访问地址-->
<property name="url" value="jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai"/>
<!-- &转义为%26 %26useSSL=false%26serverTimezone=Asia/Shanghai"-->
<!--数据库访问用户名-->
<property name="username" value="root"/>
<!--数据库访问密码-->
<property name="password" value="root"/>
</bean>
<!-- 配置JDBC模板 --> <!-- spring提供的数据库访问操作类-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 为数据源添加事务管理器 --> <!--spring 提供的数据库事务管理-->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 为事务管理器注册注解驱动 -->
<tx:annotation-driven transaction-manager="txManager"/>
<!-- 为事务管理器txManager创建transactionTemplate-->
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="txManager" />
</bean>
<!-- <!– 配置javaBean实体类 –>-->
<!-- <bean id="studentBean" class="bean.Student">-->
<!-- <!–属性自动配置 –>-->
<!-- </bean>-->
<!-- dao层类 -->
<!-- <bean id="dao" class="dao.UserDaoImp"/>-->
<!-- 控制层类 ,这个配置无效-->
<!-- <bean id="controller" class="controller.StudentController">-->
<!-- <property name="dao" ref="dao"/>-->
<!-- </bean>-->
</beans>
LoginDao
package dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import pojo.User;
import java.util.List;
/**
* ClassName: LoginDao
* Author: Admini
* Date: 2021/1/7 17:12
*/
@Repository("loginDao")
public class LoginDao extends AbstractUserDao{
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<User> query(User user){
String sql="select * from user_info where telephone=? and password=?";
String telephone=user.getTelephone();
String password=user.getPassword();
Object[] param={telephone,password};
RowMapper<User> rowMapper=new BeanPropertyRowMapper<User>(User.class); //行映射,行的每个属性对应模型的每个变量
return jdbcTemplate.query(sql,rowMapper,param); //返回符合的记录列表
}
}
UserService
package service;
import dao.UserDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import pojo.User;
import java.util.List;
/**
* ClassName: UserService
* Author: Admini
* Date: 2021/1/5 19:34
*/
@Transactional
@Service("userService")
public class UserService {
private ApplicationContext appCon=new ClassPathXmlApplicationContext("conf/applicationContext.xml");
public boolean toLogin(String telephone ,String pass){
UserDao ud=(UserDao)appCon.getBean("loginDao");
User user=new User();
user.setTelephone(telephone);
user.setPassword(pass);
List<User> list=ud.query(user);
return !list.isEmpty(); //若为空,证明没有此记录
}
public boolean toRegister(String telephone,String pass,String name,String email){
UserDao ud=(UserDao)appCon.getBean("registerDao");
User user=new User();
user.setTelephone(telephone);
user.setPassword(pass);
user.setUsername(name);
user.setEmail(email);
int flag= ud.update(user); //此处的得到一个整型数据,为更新行数
return flag != 0; //若更新为0行则代表注册失败
}
public boolean toUpdateInfo(String telephone,String name,String email)
{
UserDao ud=(UserDao)appCon.getBean("updateDao");
User user=new User();
user.setTelephone(telephone);
user.setUsername(name);
user.setEmail(email);
int flag=ud.update(user);
return flag !=0;
}
//
// public boolean toChangPassword(String telephone,String pass)
// {
// UserDao ud=(UserDao)appCon.getBean("updateDao");
//
// }
}