Artikelverzeichnis
Datenbankentwicklung: Grundoperation (Abfrage)
♦ JdbcTemplate-Operationsdatenbank (die Abfrage gibt einen bestimmten Wert zurück)
1 、Wie viele Datensätze befinden sich in der Abfragetabelle?Die Rückgabe ist ein bestimmter Wert
- Datenbank: Benutzerinformationstabelle
@Service
public class UserService {
// 注入UserDao对象属性
@Autowired
private UserDao userDao;
// 添加用户
public void addUser(User user){
userDao.add(user);
}
// 修改用户
public void updateUser(User user){
userDao.updateUser(user);
}
// 删除用户
public void deleteUser(String id){
userDao.deleteUser(id);
}
// 查询用户表的记录数
public int Count(){
return userDao.selectCount();
}
}
2, JdbcTemplate
implementieren Sie die Abfrage gibt einen Wert zurück.
- Der erste Parameter:
sql 语句
- Der zweite Parameter:
返回值的类型所对应的类(.class)
public interface UserDao {
// 添加用户的方法
void add(User user);
// 修改用户的方法
void updateUser(User user);
// 删除用户记录
void deleteUser(String id);
// 查询用户表的记录数
int selectCount();
}
@Repository
public class UserDaoImpl implements UserDao {
// 注入JdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
// 重写add方法
@Override
public void add(User user) {
.......
}
// 重写updateuser方法
@Override
public void updateUser(User user) {
.......
}
// 删除用户记录
@Override
public void deleteUser(String id) {
.......
}
// 查询返回用户表的记录数
@Override
public int selectCount() {
// sql 语句
String sql = "select count(*) from t_user";
int count = jdbcTemplate.queryForObject(sql,Integer.class);
return count;
}
}
3. Testen
@org.junit.Test
public void test_jdbc(){
try {
ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
UserService userService = context.getBean("userService",UserService.class);
// 查询返回用户表的记录数
int count = userService.Count();
System.out.println("用户信息表的记录数为"+count+"条。");
} catch (Exception e){
e.printStackTrace();
}
}
♦ JdbcTemplate-Operationsdatenbank (die Abfrage gibt das Objekt zurück)
1. Szenario: Benutzerdetails abfragen
public interface UserDao {
// 添加用户的方法
void add(User user);
// 修改用户的方法
void updateUser(User user);
// 删除用户记录
void deleteUser(String id);
// 查询用户表的记录数
int selectCount();
// 查询返回用户对象
User selectObject(String id);
}
@Service
public class UserService {
// 注入UserDao对象属性
@Autowired
private UserDao userDao;
// 添加用户
public void addUser(User user){
userDao.add(user);
}
// 修改用户
public void updateUser(User user){
userDao.updateUser(user);
}
// 删除用户
public void deleteUser(String id){
userDao.deleteUser(id);
}
// 查询用户表的记录数
public int Count(){
return userDao.selectCount();
}
// 查询返回用户对象
public User select_Object(String id){
return userDao.selectObject(id);
}
}
2. JdbcTemplate implementiert Abfrage-Rückgabeobjekte
- Der erste Parameter:
sql 语句
- Der zweite Parameter:
RowMapper
ist die Schnittstelle. Fügen Sie entsprechende Generika für die Rückgabe verschiedener Datentypen hinzu und verwenden Sie diese Schnittstelle, um Klassen zu implementieren, um die Datenkapselung abzuschließen - Der dritte Parameter:
sql 语句值
@Repository
public class UserDaoImpl implements UserDao {
// 注入JdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
// 重写add方法
@Override
public void add(User user) {
.......
}
// 重写updateuser方法
@Override
public void updateUser(User user) {
.......
}
// 删除用户记录
@Override
public void deleteUser(String id) {
.......
}
// 查询返回用户表的记录数
@Override
public int selectCount() {
........
}
// 查询返回用户对象
@Override
public User selectObject(String id) {
// sql 语句
String sql = "select * from t_user where userId=?";
User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), id);
return user;
}
}
3. Testen
@org.junit.Test
public void test_jdbc(){
try {
ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
UserService userService = context.getBean("userService",UserService.class);
User user1 = userService.select_Object("1");
System.out.println("你查找的用户信息为:"+user1);
} catch (Exception e){
e.printStackTrace();
}
}
♦ JdbcTemplate-Operationsdatenbank (Abfrage gibt Sammlung zurück)
1. Szenario: Benutzerlistenseite abfragen ...
public interface UserDao {
// 添加用户的方法
void add(User user);
// 修改用户的方法
void updateUser(User user);
// 删除用户记录
void deleteUser(String id);
// 查询用户表的记录数
int selectCount();
// 查询返回用户对象
User selectObject(String id);
// 查询返回集合
List<User> findAll();
}
@Service
public class UserService {
// 注入UserDao对象属性
@Autowired
private UserDao userDao;
// 添加用户
public void addUser(User user){
userDao.add(user);
}
// 修改用户
public void updateUser(User user){
userDao.updateUser(user);
}
// 删除用户
public void deleteUser(String id){
userDao.deleteUser(id);
}
// 查询用户表的记录数
public int Count(){
return userDao.selectCount();
}
// 查询返回用户对象
public User select_Object(String id){
return userDao.selectObject(id);
}
// 查询信息返回集合
public List<User> findAll(){
return userDao.findAll();
}
}
2. Rufen Sie die JdbcTemplate-Methode auf, um die Abfrage zu implementieren und die Auflistung zurückzugeben
- Der erste Parameter:
sql 语句
- Der zweite Parameter:
RowMapper
ist die Schnittstelle. Um verschiedene Datentypen zurückzugeben, verwenden Sie die Implementierungsklasse in dieser Schnittstelle, um die Datenkapselung abzuschließen - Der dritte Parameter:
sql 语句值
@Repository
public class UserDaoImpl implements UserDao {
// 注入JdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
// 重写add方法
@Override
public void add(User user) {
.......
}
// 重写updateuser方法
@Override
public void updateUser(User user) {
.......
}
// 删除用户记录
@Override
public void deleteUser(String id) {
.......
}
// 查询返回用户表的记录数
@Override
public int selectCount() {
........
}
// 查询返回用户对象
@Override
public User selectObject(String id) {
.........
}
// 查询信息返回集合
@Override
public List<User> findAll() {
// sql语句
String sql = "select * from t_user";
List<User> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper<User>(User.class));
return list;
}
}
3. Testen
@org.junit.Test
public void test_jdbc(){
try {
ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
UserService userService = context.getBean("userService",UserService.class);
// 查询返回集合
List<User> list = userService.findAll();
System.out.println(list);
} catch (Exception e){
e.printStackTrace();
}
}