使用SpringJDBC访问数据库
2018-07-20 来源:open-open
引包的问题在此不做详述,下面是viewspace-dao.xml中的关键配置
<!-- 扫描com.sunsharing.dao包下所有标注@Repository的DAO组件 --> <context:component-scan base-package="com.sunsharing.springdemo.dao"/> <!--使用spring提供的PropertyPlaceholderConfigurer读取数据库配置信息.properties--> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"/> </bean> <!--数据源配置--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.url}" p:username="${jdbc.username}" p:password="${jdbc.password}"/> <!--jdbcTemplate装配--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="dataSource"/>
domain层java代码
package com.sunsharing.springdemo.domain; /** * Created by nyp on 2015/2/5. */ public class User { //建立一个user对象,对应数据库中的各个属性,并给出set,get方法 private int userId; private String userName; private String password; private String lastIp; private String lastVisit; public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } 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; } public String getLastIp() { return lastIp; } public void setLastIp(String lastIp) { this.lastIp = lastIp; } public String getLastVisit() { return lastVisit; } public void setLastVisit(String lastVisit) { this.lastVisit = lastVisit; } }
dao层java代码
package com.sunsharing.springdemo.dao; import com.sunsharing.springdemo.domain.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowCallbackHandler; import org.springframework.stereotype.Repository; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; /** * Created by nyp on 2015/2/5. */ //通过Repository 注入bean @Repository public class UserDao { //自动注入jdbcTemplate @Autowired private JdbcTemplate jdbcTemplate; /** * 使用jdbcTemplate查询用户 * @param userName 用户名查询条件 * @return 用户名匹配的User对象 */ public User findUserByNameJdbc(final String userName){ //为了使userName可以再内部类中使用,必须声明为final String sqlStr="SELECT * FROM T_USER where USER_NAME= ?"; final User user = new User(); //通过匿名内部类定义回调函数 将结果集数据中的数据抽取到User对象中 jdbcTemplate.query(sqlStr, new Object[]{userName}, new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { user.setUserName(rs.getString("USER_NAME")); user.setLastVisit(rs.getString("LAST_VISIT")); user.setLastIp(rs.getString("LAST_IP")); } } ); return user; } /** * 使用jdbcTemplate增加用户 * @param user 用户对象 * * */ public void addUserJdbc(User user){ String sqlStr="INSERT INTO t_user(user_name,password,last_visit,last_ip)" + "VALUES(?,?,?,?) "; Object[] args={user.getUserName(),user.getPassword(),user.getLastVisit(),user.getLastIp()}; jdbcTemplate.update(sqlStr,args); } /** * 使用jdbcTemplate修改用户 * @param userId 用户ID * @param user 用户 * */ public void updateUserJdbc(User user,int userId){ String sqlStr="UPDATE t_user set user_name=?, password=?, last_visit=?, last_ip=? where user_id=?"; Object[] args={user.getUserName(),user.getPassword(),user.getLastVisit(),user.getLastIp(),userId}; jdbcTemplate.update(sqlStr,args); } /** * 使用jdbcTemplate删除用户 * @param userId 用户ID * * */ public void delUserJdbc(int userId){ String sqlStr="DELETE FROM t_user WHERE user_id=?"; jdbcTemplate.update(sqlStr,new Object[]{userId}); } }
junit测试SpringJDBC操作数据库代码
package com.sunsharing.springdemo.dao; import com.sunsharing.springdemo.domain.User; import com.sunsharing.component.utils.base.DateUtils; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import java.util.Date; import java.util.Iterator; import java.util.List; import static org.testng.Assert.*; /** * Created by nyp on 2015/2/5. */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:/viewspace-dao.xml"}) public class UserDaoTest{ @Autowired private UserDao userDao; @Test public void addUserByJdbc(){ User user=new User(); user.setUserName("jdbcTest"); user.setPassword("123456"); user.setLastVisit(new Date().toString()); user.setLastIp("1.1.1.1"); userDao.addUserJdbc(user); assertEquals(user.getPassword(),"123456"); } @Test public void findUserByJdbc() { User user = userDao.findUserByNameJdbc("jdbcTest"); System.out.println("username="+user.getUserName()+" lastvisit="+user.getLastVisit()); assertNotNull(user); assertEquals(user.getUserName(),"jdbcTest"); } @Test public void updateUserByJdbc(){ User user=new User(); user.setUserName("jdbcTest1"); user.setPassword("1234561"); user.setLastVisit(new Date().toString()); user.setLastIp("1.1.1.12"); userDao.updateUserJdbc(user,12); } @Test public void delUserByJdbc(){ userDao.delUserJdbc(3); } }
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:PHP 计算页面执行时间
最新资讯
热门推荐