一 java的jar包管理
1.需求分析:如何使用不同的java项目中的类方法?
创建两个java项目,分别命名为TestA和TestB:
在TestA项目中创建一个java类,创建一个计算加法的方法:
问题:如何在TestB.java中调用TestA.java中的add() 方法?
2.解决方案:将add()方法打包成jar文件,导入TestB项目中
(1)选中需要打包的类,右键点击export选项,选择JarFile
(2)选择保存的路径
(3)生成jar文件:
(4)导入jar文件:
①将生成的jar文件复制到TestB项目下
②右键项目下jar文件 点击build path 可以看到会生成一个奶瓶装的文件
接下来就可以使用了
于此类似:我们要用java连接数据库,也要导入数据库的jar类,以便于我们可以使用数据库为我们提供的各种方法(就不用我们自己去写了哈)
二 java连接数据库
1. 首先我们要导入数据库的jar包(这里以mysql为例)
过程上面写的很清楚就不赘述了
2 加载数据库的驱动
利用Class.forName(driver)方法 加载数据库的驱动
其中driver就是导入jar中的数据库驱动的路径
驱动代码入下
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
(tips :如果我们成功导入jar后 可以利用编译器的自动补全来找到路径)
3 获得连接对象:
利用DriverManager.getConnect(“ 1”,“2”,“3”)获取连接对象,该方法需要传递三个参数:
url:数据库的路径
user:数据库用户名
password:数据库密码
其中user和pwd这里就不赘述写法了
url的写法如下:
”jdbc:msyql://127.0.0.1:3306/xxxx“ ->"技术:数据库名称:数据库ip:数据库端口号/参数“
代码如下
(连接类)
package swu.smxy.zdw;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
public class GetConnect {
public GetConnect() {
//连接驱动程序
try {
//连接驱动程序
Class.forName("com.mysql.jdbc.Driver");
//获得连接对象
Connection connection=(Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb?userUnicode=true&charactersetEncoding=utf-8", "root", "758258");
//判断是否连接成功
if(connection!=null){
System.out.println("连接成功");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
(测试类)
package swu.smxy.zdw;
public class Test {
public static void main(String[] args) {
GetConnect connect=new GetConnect();
}
}
三 增删改查
我个人觉得数据库的增删改基本都一个样
第一步连接数据库,然后执行代码就好了
1 增删改
代码如下
public class GetConnect {
Connection connection=null;
static int ADD=1;
static int DELETE=2;
static int MODIFY=3;
public GetConnect() {
//连接驱动程序
try {
//连接驱动程序
Class.forName("com.mysql.jdbc.Driver");
//获得连接对象
connection=(Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/teaching?userUnicode=true&charactersetEncoding=utf-8", "root", "758258");
//判断是否连接成功
if(connection!=null){
System.out.println("连接成功");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public int operation(int operation){
String addsql="insert into score values('18179219692','c1501',90,95)";
String deletesql="delete from score where studentno='18179219692'";
String modify="update score set final=92 where studentno='18179219692'";
String sqlString=null;
String addServer="添加成功";
String deleteServer="删除成功";
String modifyServer="修改成功";
String serverString=null;
if(operation==1){
sqlString=addsql;
serverString=addServer;
}else if(operation==2){
sqlString=deletesql;
serverString=deleteServer;
}else if(operation==3){
sqlString=modify;
serverString=modifyServer;
}else{
System.out.println("You entered an illegal value");
return 0;
}
try {
Statement statement=(Statement) connection.createStatement();
statement.execute(sqlString);
statement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(serverString);
return 0;
}
}
测试类 这里我们仅测试增加代码:
package swu.smxy.zdw;
import java.sql.SQLException;
public class Test {
public static void main(String[] args) {
GetConnect connect=new GetConnect();
connect.operation(1);
try {
connect.connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
执行代码后:
打开mysql 查询可以看到多了一行:
2 查询
(最近在查找如何解决mysql中文乱码问题,解决了就更新)