記事のディレクトリ
データベース開発:基本操作(追加、削除、変更)
①準備
-
1.関連するjarパッケージを導入します。
-
2.Spring構成ファイルでデータベース接続プールを構成します。
-
3. JdbcTemplateオブジェクトを構成し、データソースを挿入します
-
4.サービスクラスを作成し、daoクラスを作成し、daoにjdbcTemplateオブジェクトを挿入します
②データベース操作-追加[挿入] update()
1.データベースに対応するエンティティクラスを作成します
- データベーステーブルを作成する
t_user
- では
User类
、t_user表
各フィールドをクラスの属性として設定して、後続の操作での値の割り当てと取得を容易にします。
package JDBC.entry;
public class User {
// 创建字段对应属性
private String useId;
private String userName;
private String uststus;
// set\get方法
public String getUseId() {
return useId;
}
public void setUseId(String useId) {
this.useId = useId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUststus() {
return uststus;
}
public void setUststus(String uststus) {
this.uststus = uststus;
}
}
2.サービスとダオを書く
-
(1)daoにデータベース操作を追加します(インターフェース実装クラス書き換え固有の実装)
-
(2)オブジェクトを呼び出す特定の実装がJdbcTemplateで
update()
実装された操作メソッドを追加する場合
- 最初のパラメーター:
sql 语句
- 2番目のパラメーター:可変パラメーター、設定
sql 语句值
- 最初のパラメーター:
-
(3)SQL addステートメント:
insert into 表名 values (value1,value2,value3)
@Repository
public class UserDaoImpl implements UserDao {
// 注入JdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
// 重写add方法
@Override
public void add(User user) {
// sql语句
String sql = "insert into t_user values(?,?,?)";
// 可变数组保存sql语句插入值
Object[] args = {
user.getUseId(), user.getUserName(), user.getUststus()};
// 调用方法实现数据库信息插入
int update = jdbcTemplate.update(sql,args);
System.out.println("插入操作影响的记录数:"+ update);
}
}
- 処理する:
3.テスト
- テストクラスでは、
userService对象
を取得した後、addUser()
メソッドを呼び出してユーザーオブジェクトを渡します。その前に、まずユーザーオブジェクトを作成し、user.setXxx()
メソッドを介して各フィールドに値を割り当てます。
@org.junit.Test
public void test_jdbc(){
try {
// 1.获取配置文件对象
ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
UserService userService = context.getBean("userService",UserService.class);
// 创建user对象,设置属性
User user = new User();
// user.setUseId("1");
user.setUseId("2");
user.setUserName("Vae");
// user.setUststus("creating");
user.setUststus("singing");
// 调用方法
userService.addUser(user);
} catch (Exception e){
e.printStackTrace();
}
}
③データベース操作-削除[削除] update()
1.サービスとダオを書く
- レコードの削除はレコードを介して実行できる
id
ため、deleteUser()
渡されるパラメーターは削除されるレコードid
です。 - SQL削除ステートメント:
delete from 表名 where 字段1=value1
public interface UserDao {
// 添加用户的方法
void add(User user);
// 修改用户的方法
void updateUser(User user);
// 删除用户记录
void deleteUser(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);
}
}
2.データベースレコードの削除を具体的に実装するための実装クラスを作成します
@Repository
public class UserDaoImpl implements UserDao {
// 注入JdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
// 重写add方法
@Override
public void add(User user) {
// sql语句
String sql = "insert into t_user values(?,?,?)";
// 可变数组保存插入值
Object[] args = {
user.getUseId(), user.getUserName(), user.getUststus()};
// 调用方法实现数据库信息插入
int insert = jdbcTemplate.update(sql,args);
System.out.println("插入操作影响的记录数:"+ insert);
}
// 重写updateuser方法
@Override
public void updateUser(User user) {
// sql语句
String sql = "update t_user set username=?,ustatus=? where user_id=?";
// 可变数组保存修改值
Object[] args = {
user.getUserName(),user.getUststus(),user.getUseId()};
// 调用方法实现数据库信息修改
int update = jdbcTemplate.update(sql,args);
System.out.println("插入操作影响的记录数:"+ update);
}
// 删除用户记录
@Override
public void deleteUser(String id) {
// sql语句
String sql = "delete from t_user where user_id=?";
// 调用方法实现数据库信息删除
int delete = jdbcTemplate.update(sql,id;
System.out.println("插入操作影响的记录数:"+ delete);
}
}
3.テストクラス
@org.junit.Test
public void test_jdbc(){
try {
ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
UserService userService = context.getBean("userService",UserService.class);
// 创建user对象,设置属性
User user = new User();
user.setUseId("3");
user.setUserName("Vae");
user.setUststus("dancing");
// 调用方法增加用户
userService.addUser(user);
// 调用方法删除用户
userService.deleteUser("2");
} catch (Exception e){
e.printStackTrace();
}
}
ここでは、最初にレコードを挿入し、次にテーブル内のID 2のレコードを削除します。これで、テーブル内の残りのレコードは1、3レコードになります。
④データベース操作-変更[更新] update()
1.サービスとダオを書く
- ユーザー情報の変更を実現する際には、IDによる変更戦略も採用しています。
- SQL変更ステートメント:
update 表名 set 字段1=value1,字段2=value2 where 字段3=value3
public interface UserDao {
// 添加用户的方法
void add(User user);
// 修改用户的方法
void updateUser(User user);
}
@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);
}
}
2.データベースの変更を実装するための実装クラスを記述します
@Repository
public class UserDaoImpl implements UserDao {
// 注入JdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
// 重写add方法
@Override
public void add(User user) {
// sql语句
String sql = "insert into t_user values(?,?,?)";
// 可变数组保存插入值
Object[] args = {
user.getUseId(), user.getUserName(), user.getUststus()};
// 调用方法实现数据库信息插入
int insert = jdbcTemplate.update(sql,args);
System.out.println("插入操作影响的记录数:"+ insert);
}
// 重写updateuser方法
@Override
public void updateUser(User user) {
// sql语句
String sql = "update t_user set username=?,ustatus=? where user_id=?";
Object[] args = {
user.getUserName(),user.getUststus(),user.getUseId()};
// 调用方法实现数据库信息修改
int update = jdbcTemplate.update(sql,args);
System.out.println("插入操作影响的记录数:"+ update);
}
}
3.テストクラス
@org.junit.Test
public void test_jdbc(){
try {
ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
UserService userService = context.getBean("userService",UserService.class);
// 创建user对象,设置属性
User user = new User();
// 调用方法修改用户
user.setUseId("3"); // 根据id进行修改
user.setUserName("VAE");
user.setUststus("singing");
userService.updateUser(user);
} catch (Exception e){
e.printStackTrace();
}
}
ユーザー情報をid = 3で変更します:username
change 大写
、status
change singing
。
注:
データベース・エンティティクラス1の記事は修正する必要があります。再命名することに対応するフィールドのプロパティをuserId
、userName
(これはuserStatus
変更するクエリのニーズにも使用されています)。
2.データベースで設計されたテーブルt_userも次のように変更する必要があり
ます。私のブログを参照してください:jdbcTemplate.queryXxx()戻り値はnullです。