标签:context ase 细节 持久性 jdb override 通过 nal ide
DAO(Data Access Object数据访问对象)
优点:
DAO属于O/R Mapping技术的一种实现。
Spring DAO 提供了一套抽象的DAO类,这有利于以统一的方式操作各种DAO技术,如:JDO、JDBC等。
spring dao 提供的抽象类:
在applicationContext.xml中,配置数据源,并注入连接参数。
使用类org.springframework.jdbc.datasource.DriverManagerDataSource,
将数据源注入数据库操作DAO类
创建接口
定义实体类对象
编写接口实现、数据库操作DAO类
加载applicationContext.xml
step1:在applicationContext.xml中,配置数据源,注入连接参数
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 配置数据源 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///db_database_spring"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>
</beans>
step2:将数据源注入数据库操作DAO类
<!-- UserDAO注入数据源,dataSource获取数据库的连接等 -->
<bean id="userDAO" class="springdao.UserDAO">
<property name="dataSource">
<ref local="dataSource"/>
</property>
</bean>
step3:创建接口
package springdao;
public interface UserDAOImpl {
//向数据表tb_user中添加数据
public abstract void inserUser(User user);
}
step4:定义实体类对象
package springdao;
public class User {
private Integer id;//唯一性标识
private String name;
private String password;
private Integer age;
private String sex;
public Integer getId() {return id;}
public void setId(Integer id) {this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getPassword() {return password;}
public void setPassword(String password) {this.password = password;}
public Integer getAge() {return age;}
public void setAge(Integer age) {this.age = age;}
public String getSex() {return sex;}
public void setSex(String sex) {this.sex = sex;}
}
step5:编写接口实现、数据库操作DAO类
package springdao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.sql.DataSource;
public class UserDAO implements UserDAOImpl {
private DataSource dataSource;//注入DataSource
public DataSource getDataSource() {
return dataSource;
}
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
//向数据表tb_user中添加数据
@Override
public void inserUser(User user) {
String name = user.getName();//获取姓名
Integer age = user.getAge();//获取年龄
String sex = user.getSex();//获取性别
Connection conn = null;//定义Connection
PreparedStatement ps = null;//定义Statement
try {
conn = dataSource.getConnection();//获取数据库连接
String sql="INSERT INTO tb_user(name,age,sex) VALUES(?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1,name);
ps.setInt(2, age);
ps.setString(3,sex);
ps.execute();//添加数据的SQL语句
} catch (SQLException e) {
e.printStackTrace();
}
finally {
if(ps != null) {
try {
ps.close();//关闭Statement对象
}
catch(SQLException e) {
e.printStackTrace();
}
}
if(conn != null) {
try {
conn.close();//关闭数据库连接
}
catch(SQLException e) {
e.printStackTrace();
}
}
}
}
}
step6:加载applicationContext.xml
package example5;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Manager {
public static void main(String[] args) {
//装载配置文件
ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = new User();//实例化User对象
user.setName("springdao");//设置姓名
user.setAge(new Integer(15));//设置年龄
user.setPassword("123456");
user.setSex("男");//设置性别
UserDAO userDAO = (UserDAO) factory.getBean("userDAO");//获取UserDAO
userDAO.inserUser(user);//执行添加方法
System.out.println("数据添加成功!!!");
}
}
标签:context ase 细节 持久性 jdb override 通过 nal ide
原文地址:https://www.cnblogs.com/2020-6-12/p/14126839.html