oracle中primary,oracle中如何 Primary key自增
oracle中如何 Priamry key自增
摸索了一晚上,終于實(shí)現(xiàn)了key的自增,現(xiàn)在將實(shí)現(xiàn)的過程總結(jié)如下:
(1)首先創(chuàng)建一個(gè)表:這里是我創(chuàng)建的一個(gè)User表,包括id,user_name,password三個(gè)字段
實(shí)現(xiàn)的函數(shù)如下:
public void create(String tableName) {
jdbcTemplate.execute("create table "+tableName+"(id integer,user_name varchar2(40),password varchar 2(40),primary key (id))");
}
(2)然后創(chuàng)建一個(gè)序列:
String sql="create sequence "+seq //這里的seq是我自定義的序列名
+ " start with 8"
+ "increment by 1"
+ "minvalue 1"
+ "maxvalue 999999"
+ "nocycle nocache";
jdbcTemplate.execute(sql);
(3)為主鍵id設(shè)置自增:
String sql1="insert into td(id) values (seq.NEXTVAL)";
jdbcTemplate.execute(sql1);
(4)創(chuàng)建觸發(fā)器:
String sql2="create trigger tri_user before insert on td for each row begin select seq.NEXTVAL into :new.id from dual;end;";
jdbcTemplate.execute(sql2);
注意這里的語(yǔ)法要寫正確,我開始沒寫正確,出現(xiàn)了錯(cuò)誤:
(5)插入數(shù)據(jù)
我自己寫了一個(gè)save函數(shù),如下:
public void save(User user) {
//Assert.isNull(user, "user is not null");
jdbcTemplate.update("insert into td(id,user_name,password) values(?,?,?)",
new Object[]{user.getId(),user.getUser_name(),user.getPassword()},
new int[]{java.sql.Types.INTEGER,java.sql.Types.VARCHAR,java.sql.Types.VARCHAR});
}
我的測(cè)試類如下:
public class jdbcTest {
@Test
public void test() {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"/beans.xml");
UserDAO userDAO = (UserDAO) ctx.getBean("userDAO");
User u3=new User();
u3.setUser_name("cwww");
u3.setPassword("123456");
userDAO.save(u3);
}
不斷插入后生成的表如下:
總結(jié)
以上是生活随笔為你收集整理的oracle中primary,oracle中如何 Primary key自增的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle主键增长方式,oracle
- 下一篇: oracle 体系结构认识,Oracle