韩顺平 循序渐进学JAVA 从入门到精通 课件 笔记 第六十9989447
Java程序操作sql sever
Crud介绍 增加 查询 更新 删除 的首字母简写
Jdbc
Java访问sql server 有两种种
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
1直接访问(通过的通道时tcp/it
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
)2通过odbc访问(通
过的通道是Shared Memory).
Jdbc驱动分类
1( Jdbc-odbc桥连接
2( 本地协议纯java驱动程序
3( 网络协议纯java驱动程序
4( 本地spi
主要用1,2两种
Jdbc有不足,后来产生了HIbernastc 案例1,使用Jdbc-odbc桥连接方式来连接数据库.
第一步: 配置数据源
控制面板 管理工具 ODBC数据源管理 添加 Sql Server 取名字 服务器:local 或 . (小
点) 或者列到 局域网的服务器 选择登陆数据库方式 sa h123 选择连接数据库名称
默认下一步 测试成功 确定
第二步:在程序中去连接数据源
/**
* 从数据库里读取数据.
*/
package com.test2;
import java.util.Vector;
import javax.swing.*;
import javax.swing.*;
import javax.swing.*;
import java.sql.*;
public class Test2 extends JFrame{
//rowData用来存放行数据
//columnNames存放列名
Vector rowData, columnNames;
JTable jt=null;
JScrollPane jsp =null;
//定义操作数据库需要的东西
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs =null;
public static void main(String[] args) {
Test2 t=new Test2();
}
public Test2()
{
columnNames=new Vector();
//设置列名
columnNames.add("学号");
columnNames.add("名字");
columnNames.add("性别");
columnNames.add("年龄");
columnNames.add("籍贯");
columnNames.add("系别");
//rowData可以存放多行
rowData =new Vector();
try
{
//加载驱动
Class.forName("com.mocrosoft.jdbc.sqlserver.SQLServerDriver");
//得到连接
ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.
0.1:1433:databaseName=spdb1","sa","h123");
ps=ct.prepareStatement("select * from stu");
rs=ps.executeQuery();
while(rs.next())
{
Vector hang =new Vector();
hang.add(rs.getString(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
hang.add(rs.getInt(4));
hang.add(rs.getString(5));
hang.add(rs.getString(6));
//加入到rowData
rowData.add(hang);
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
if(rs!=null) rs.close();
if(ps!=null) ps.close();
if(ct!=null) ct.close();
}
//初始化JTable
jt=new JTable(rowData, columnNames);
//初始化jsp
jsp=new JScrollPane(jt);
//吧jsp放进到JFrame
this.add(jsp);
this.setSize(500,500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
第六十五讲:
Statement与preparedstatement的区别:{效率高;安全高,现在就不用Statement了} 都可以吧sql语句从java程序中送到指定数据库中,并执行sql语句,但是也有区别: 1, 直接使用statement.驱动程序一般不会对sql语句做处理而是直接交给了数据库,但是
preparedstatement形成预编译(形成二进制再传给数据库)过程并对语句做字符串转换. 2, 两个好处:1对于多次重复的执行语句使用preparedstatement效率更高一些,在这种情况下
也适合使用Batch,另外比较好的解决本地化问题.2可以有效地防止危险字符的注入,也是
sql注入的问题.
/**
crud * 演示PreparedStatement使用
* 1,PreparedStatement可以提高执行效率,<因为由于编译>
* 2,PreparedStatement可以防止sql注入,但是要用?赋值的方式才可以
*/
package com.test1;
import java.sql.*;
public class Test2 {
public static void main(String[] args) {
//定义需要的对象
PreparedStatement ps=null;
Connection ct =null;
// ResultSet rs =null;
try
{
//1加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//得到连接
ct=DriverManager.getConnection("jdbc:odbc:mytest","sa","h123");
// //3.创建ps,执行的时候可以给?执行
// ps=ct.prepareStatement("select * from student where
stuid=?");
// //给?复制
// ps.setString(1, "sp001");
// rs=ps.executeQuery();
// while(rs.next())
// {
// System.out.print(rs.getString(1)+" "); // System.out.print(rs.getString(2)+" "); // System.out.print(rs.getString(3)+" "); // System.out.print(rs.getInt(4)+" "); // System.out.print(rs.getString(5)+" "); // System.out.print(rs.getString(6)+" "); // System.out.println(" ");
// }
//使用prepareStatement演示添加的功能
ps=ct.prepareStatement("insert into student values
(?,?,?,?,?,?)");
ps.setString(1, "sp008");
ps.setString(2, "弼马温");
ps.setString(3, "男");
ps.setInt(4, 12);
ps.setString(5, "天上");
ps.setString(6, "天上");
int i=ps.executeUpdate();
if(i==1)
{
System.out.print("添加成功 ");
}
else
{
System.out.print(" 添加失败 ");
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try {
//rs.close();
ps.close();
ct.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
第六十六讲:
驱动:就是一堆接口.
原本是jdbc-ODBC 后来发展为jdbc.再后来发展为orm技术的hibernate
本讲主要讲解 jdbc技术.
/**
* jdbc方式去操作数据库
* 1,把包引进 java.sql.*;
* 2,需要引入三个jar包
jdbc来连接是通过tcp/ip来连接的.所以要把tcp/ip服务打开,并且端口不能 * 3,如果通过
动待分配(默认1433),然后重启服务就可以了.
*/
package com.test2;
import java.sql.Connection;
import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;
import java.sql.SQLException; public class Test3 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义必要的对象
Connection ct =null;
PreparedStatement ps=null;
ResultSet rs =null;
try
{
//加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//得到连接
ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;d
atabaseName=spdb1","sa","h123");
// ps=ct.prepareStatement("select * from student"); // //如果是查询 使用executeQuery,如果是增加删除 修改 用executeUpdate()
// rs=ps.executeQuery();
// while(rs.next())
// {
// System.out.print(rs.getString(1)+" "); // System.out.print(rs.getString(2)+" "); // System.out.print(rs.getString(3)+" "); // System.out.print(rs.getInt(4)+" "); // System.out.print(rs.getString(5)+" "); // System.out.print(rs.getString(6)+" "); // System.out.println(" ");
// }
//添加 删除 修改
ps=ct.prepareStatement("insert into student
values(?,?,?,?,?,?)");
ps.setString(1, "sp010");
ps.setString(2, "郝丰澧");
ps.setString(3, "男");
ps.setInt(4, 22);
ps.setString(5, "山东");
ps.setString(6, "北京");
int i=ps.executeUpdate();
if(i==1)
{
System.out.print("添加成功ok");
}
else
{
System.out.print("添加失败");
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
//关闭资源
try {rs.close();
ps.close();
ct.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Java操作sql sever 数据库
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
在java中来控制数据库(表)的创建,删除备份恢复工作.
/**
* 在java中如何使用DDL语句(create drop backup)
*/
package com.test3;
import java.sql.*;
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义操作数据库需要的东西
PreparedStatement ps=null;
Connection ct=null;
// ResultSet rs =null;
try
{
//加载驱动<固定写法>
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//得到连接127.0.0.1表示要访问的数据库IP
//1433表示sql server的默认端口(共有65535个)
ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;d
atabaseName=spdb1","sa","h123");
//创建一个ps创建一个数据库,创建表 备份数据库
ps=ct.prepareStatement("backup database vvv to
disk='d:/eddsfdsaaa.bak' ");
//如果创建的是一个DDL语句
boolean b=ps.execute();
if(b==true)
{
System.out.print("创建成功!");
}
else
{
System.out.print("创建失败!!");
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
//关闭资源
try {
if(ps!=null) ps.close();
if (ct!=null) ct.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}