1.Statement
增删改:
方法:execute(String SQL)
String url="jdbc:Access:///E://A//shop.mdb";
Connection con=null; //数据库连接对象
Statement st = null;//数据库操作对象
//SQL语句
//String sql="insert into goods values('7','鬼王','男','鬼王宗','伏龙鼎')";
String sql="update goods set 门派='青云门' where 姓名='张小凡'";
Class.forName("com.hxtt.sql.access.AccessDriver");
con = DriverManager.getConnection(url,"","");
System.out.println("连接成功");
//为数据库创建一个操作对象
st=con.createStatement();//作用为,将数据库连接对象与数据库操作对象连接
st.execute(sql); //此方法用于执行insert update delete语句
System.out.println("插入操作成功");
查找:
方法:executeQuery(String SQL)返回ResultSet对象
String url="jdbc:Access:///E://A//shop.mdb";
Connection con=null;
Statement st = null;//执行查询的对象
String sql="select * from goods";
Class.forName("com.hxtt.sql.access.AccessDriver");
con = DriverManager.getConnection(url,"","");
System.out.println("连接成功");
st = con.createStatement();//创建查询对象
ResultSet rs;
rs = st.executeQuery(sql);//执行查询语句,并返回一个结果
//查询结果是以指针的形式出现的,指针指向第一条记录,通过移动指针来查看结果
while(rs.next()){ //通过循环依次读取查询结果
//与数据库访问有关的索引都是从1开始
System.out.println(rs.getString(2)+":"+rs.getString(3)+":"+rs.getString(4));
}
2. 预编译方式PreparedStatement
预编译(PreparedStatement)与Statement的不同点
1.预编译在与数据库连接对象建立连接时,就将SQL语句传入对象中,再次调用时就不需要传入SQL
2.预编译可以在SQL中传入参数
查询:executeQuery()
Connection con=null;
String url="jdbc:Access:///E://A//shop.mdb";
PreparedStatement ps = null;
//?就是设置的未知参数,方便传入参数
String sql = "select name,性别,门派,武器 from goods where name=?" ;
ResultSet rs = null;
Class.forName("com.hxtt.sql.access.AccessDriver");
con = DriverManager.getConnection(url);
System.out.println("连接成功!");
ps = con.prepareStatement(sql);
//通过setString来传入参数“1”表示未知数处于SQL语句中的位置
ps.setString(1, "鬼王");
rs=ps.executeQuery();
while(rs.next()){ System.out.println(rs.getString(1)+":"+rs.getString(2)+":"+rs.getString(3)+":"+rs.getString(4));
}
增删改:executeUpdate()
Connection con=null;
String url="jdbc:Access:///E://A//shop.mdb";
PreparedStatement ps = null;
String sql="insert into goods values(?,?,?,?,?)";
Class.forName("com.hxtt.sql.access.AccessDriver");
con = DriverManager.getConnection(url);
System.out.println("连接成功!");
//将prepareStatement与数据库连接对象建立连接
ps = con.prepareStatement(sql);
ps.setInt(1, 9);
ps.setString(2, "金铃儿");
ps.setString(3, "女");
ps.setString(4, "合欢派");
ps.setString(5, "不详");
//用于执行insert delete update语句
//返回一个int的值,代表通过此方法修改的数据库的行数
int i = ps.executeUpdate();
if(i>0)System.out.println("操作成功");
else System.out.println("操作失败");
3. 存储方式连接CallableStatement
区别:只有调用的接口方式不同,其他操作均相同
无参
Connection con=null;
//调用存储函数的接口
CallableStatement cs = null;
ResultSet rs;
String url="jdbc:Access:///E://A//shop.mdb";
try {
Class.forName("com.hxtt.sql.access.AccessDriver");
con = DriverManager.getConnection(url);
System.out.println("Connected!");
//输入要执行的存储过程的名称
cs = con.prepareCall("{call proPlayFilm}");
rs = cs.executeQuery();
while(rs.next()){
System.out.println(rs.getString(1)+":"+rs.getString(2)+":"+rs.getString(3)+":"+rs.getString(4));
}
带参
?就是存储过程的参数