1.首先要在oracle中
(1)新建用户
(2)赋予权限
(3)然后新建表
(4)插入数据
这些内容,我之前有提过
2.使用eclipse,为了以后方便使用JavaWeb,所以使用JavaEE;
3.目录结构
4.连接数据库
(1)先build path ojdbc6jar包
(2)写配置文件:config.properties
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
name=jf1909
password=123456
(3)写数据库连接类:DBUtil
package util;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class DBUtil {
//变量
private static Properties pro=new Properties();
//静态块
static {
try {
pro.load(new FileInputStream("config/config.properties"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//连接数据库
public static Connection getConnection() {
Connection conn=null;
//反射机制
try {
Class.forName(pro.getProperty("driver"));
String url=pro.getProperty("url");
String username=pro.getProperty("name");
String password=pro.getProperty("password");
conn=DriverManager.getConnection(url,username,password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//关闭数据库
public static void closeConn(Connection conn,PreparedStatement ps,ResultSet rs) {
if(rs!=null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(ps!=null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String [] args) {
Connection conn=DBUtil.getConnection();
System.out.println(conn);
}
}
(4) bean对象
User
package bean;
public class User {
private int userId;
private String username;
private String userAccount;
private int sex;
private String birthday;
public User(int userId, String username, String userAccount, int sex, String birthday) {
super();
this.userId = userId;
this.username = username;
this.userAccount = userAccount;
this.sex = sex;
this.birthday = birthday;
}
public User() {
super();
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserAccount() {
return userAccount;
}
public void setUserAccount(String userAccount) {
this.userAccount = userAccount;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
(5)接口
UserDao
package dao;
import java.util.List;
import bean.User;
public interface UserDao {
//插入
public int insertUser(User user);
//查询
public List<User> queryUsers(User user);
}
(6)实现类
UserDaoImpl
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import bean.User;
import util.DBUtil;
public class UserDaoImpl implements UserDao {
@Override
public int insertUser(User user) {
Connection conn=DBUtil.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
String sql="INSERT INTO T_USER(USER_ID,USER_ACCOUNT,REAL_NAME,SEX,BIRTHDAY) VALUES(SEQ_T_USER.NEXTVAL,?,?,?,TO_DATE(?,'yyyy-mm-dd'))";
try {
ps=conn.prepareStatement(sql);
ps.setString(1, user.getUserAccount());
ps.setString(2, user.getUsername());
ps.setInt(3, user.getSex());
ps.setString(4,user.getBirthday());
return ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
@Override
public List<User> queryUsers(User user) {
List<User> users=new ArrayList<User>();
Connection conn=DBUtil.getConnection();
PreparedStatement ps=null;
ResultSet rs=null;
String sql="SELECT USER_ID,USER_ACCOUNT,REAL_NAME,BIRTHDAY FROM T_USER WHERE 1=1";
try {
//这是动态拼接查询条件
if(user.getUsername()!=null && user.getUsername().equals("")) {
sql+= "AND REAL_NAME LIKE ?";
}
ps=conn.prepareStatement(sql);
//有多个条件+多个条件的判断
if(user.getUsername()!=null && user.getUsername().equals("")) {
ps.setString(1, "%"+user.getUsername()+"%");
}
rs=ps.executeQuery();
while(rs.next()) {
String userName=rs.getString("REAL_NAME");
int userId=rs.getInt("USER_ID");
User temp=new User();
temp.setUserId(userId);
temp.setUsername(userName);
users.add(temp);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
DBUtil.closeConn(conn, ps, rs);
}
return users;
}
}
(7)在DBUtil中测试
这表示数据库连接成功;
(8)新建测试类:UserDaoTest
package dao;
import bean.User;
public class UserDaoTest {
public static void main(String[] args) {
UserDao userdao=new UserDaoImpl();
User user=new User(0,"zhangfuqi","张福气",0,"1992-11-11");
int result=userdao.insertUser(user);
System.out.println(result>0?"成功":"失败");
}
}
return 返回成功的条数会 > 0
数据插入成功