以下是我写的一些代码:jsp的
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.util.*"%>
<%@page import="employee.vo.*"%>
<%@page import="employee.dao.*"%>
<%@page import="employee.dao.impl.*"%>
<% Employee employee=new Employee();
    employee.setUsid("90004") ;
employee.setUsname("陈苍天") ;
employee.setUssex("男") ;
employee.setUsjob("仓管员") ;
employee.setTelephone("13545095505") ;
employee.setEmail("[email protected]") ;
employee.setAddress("武汉市黄陂区武湖农场");    EmployeeDAO dao=new EmployeeDAOImpl();
try
{       dao.insert(employee);
  
}
catch(Exception e)
    {
out.println(e);
}
%>DAO:
Employee.java 
 package employee.vo ;// 值对象,包含属性,setter,getter方法
public class Employee
{
private String usid ;
private String usname;
private String ussex ;
private String usjob;
private String telephone ;
private String email ;
private String address;
// 生成getter方法

public void setUsid(String usid)
{
this.usid = usid ;
}
public void setUsname(String usname)
{
this.usname = usname ;
}

public void setUssex(String ussex)
{
this.ussex = ussex ;
}
public void setUsjob(String usjob)
{
this.usjob = usjob ;
}
public void setTelephone(String telephone)
{
this.telephone = telephone ;
}
public void setEmail(String email)
{
this.email = email ;
}
public void setAddress(String address)
{
this.address = address ;
}

//生成setter方法
public String getUsid()
{
return this.usid;
}
public String getUsname()
{
    return this.usname;
}

public String getUssex()
{
  return this.ussex ;
}

public String getUsjob()
{
return this.usjob ;
}
public String getTelephone()
{
return this.telephone ;
}
public String getEmail()
{
return this.email ;
}
public String getAddress()
{
return this.address ;
}



};
DataBaseConnection.java 
package dbc ;
import java.sql.* ;// 主要功能就是连接数据库、关闭数据库
public class DataBaseConnection
{
private final String DBDRIVER = "com.mysql.jdbc.Driver" ;
private final String DBURL = "jdbc:mysql://localhost:3306/jxcgl" ;
private final String DBUSER = "root" ;
private final String DBPASSWORD = "root" ;
    private Connection conn =null; public DataBaseConnection()
{
try
{
Class.forName(DBDRIVER).newInstance() ;
this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
}
catch (Exception e)
{
}
} // 取得数据库连接
public Connection getConnection()
{
return this.conn ;
} // 关闭数据库连接
public void close()
{
try
{
this.conn.close() ;
}
catch (Exception e)
{
}
}
};
EmployeeDAOImpl.java 
 package employee.dao.impl ;
import java.sql.* ;
import java.util.* ;
import employee.vo.* ;
import dbc.* ;
import employee.dao.* ;// 此类需要完成具体的数据库操作,需要JDB代码
public class EmployeeDAOImpl implements EmployeeDAO
{
// 增加操作
public void insert(Employee employee) throws Exception
{
String sql = "INSERT INTO emloyeeinfo (usid,usname,ussex,usjob,telephone,email,address) VALUES (?,?,?,?,?,?,?)" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
// 下面是针对数据库的具体操作
try
{
// 连接数据库
dbc = new DataBaseConnection() ;
pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,employee.getUsid()) ;
pstmt.setString(2,employee.getUsname()) ;
pstmt.setString(3,employee.getUssex()) ;
pstmt.setString(4,employee.getUsjob()) ;
pstmt.setString(5,employee.getTelephone()) ;
pstmt.setString(6,employee.getEmail()) ;
pstmt.setString(7,employee.getAddress()) ;
// 进行数据库更新操作
pstmt.executeUpdate() ;
pstmt.close() ;
}
catch (Exception e)
{
throw new Exception("操作出异常") ;
}
finally
{
// 关闭数据库连接
dbc.close() ;
}
}

}
DAOFactory.java
 package employee.factory ;import employee.dao.* ;
import employee.dao.impl.* ;public class DAOFactory
{
public static EmployeeDAO getEmployeeDAOInstance()
{
return new EmployeeDAOImpl() ;
}
};请各位高手指教啊

解决方案 »

  1.   


    你可以用spring事务解决这个问题
                      <bean id="userDaoProxy"
    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" >
    <property name="transactionManager">
    <ref bean="transactionManager" />
    </property>
    <property name="target">
    <ref local="userDao" />
    </property>
    <property name="transactionAttributes">
    <props>
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> 
                    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>              
                    <prop key="save*">PROPAGATION_REQUIRED</prop> 
                    <prop key="insert*">PROPAGATION_REQUIRED</prop> 
                    <prop key="update*">PROPAGATION_REQUIRED</prop> 
                    <prop key="return*">PROPAGATION_REQUIRED</prop>
                    <prop key="search*">PROPAGATION_REQUIRED</prop>
                    <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> 
    </props>
    </property>
    </bean>或者是在你要进行保存,更新,插入的dao里的方法中加入几条语句:
    //更新库存信息
    public void updateTotal(Book book){
    this.getSession().setFlushMode(FlushMode.AUTO);//更新前设置session为打开的
    this.getHibernateTemplate().update(book);
    this.getHibernateTemplate().flush();//清空session缓存,更新入数据库
    }
      

  2.   

    额额..有错么?好像都挺正常的
    给你个SQL2000的例子,测试通过.
    public static void insertSQL2000() throws ClassNotFoundException, SQLException {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs",
    "sa", "");
    String sql = "insert into authors(au_id,au_lname,au_fname,phone,contract) values(?,?,?,?,?)";
    PreparedStatement pstmt = conn.prepareStatement(sql);
    pstmt.setString(1, "998-72-6666");
    pstmt.setString(2, "injava");
    pstmt.setString(3, "fire");
    pstmt.setString(4, "707 448-4982");
    pstmt.setString(5, "1");
    pstmt.executeUpdate();
    pstmt.close();
    conn.close();
    }
      

  3.   

    try 

    // 连接数据库 
    dbc = new DataBaseConnection() ; 
    pstmt = dbc.getConnection().prepareStatement(sql) ; 
    pstmt.setString(1,employee.getUsid()) ; 
    pstmt.setString(2,employee.getUsname()) ; 
    pstmt.setString(3,employee.getUssex()) ; 
    pstmt.setString(4,employee.getUsjob()) ; 
    pstmt.setString(5,employee.getTelephone()) ; 
    pstmt.setString(6,employee.getEmail()) ; 
    pstmt.setString(7,employee.getAddress()) ; 
    // 进行数据库更新操作 
    pstmt.executeUpdate() ; 
    pstmt.close() ; 
    } 在这里面测试一下看看执行到这里没有
      

  4.   

    http://hi.baidu.com/%B7%E8%BF%F1%B5%C4%B7%CB%CD%BD/blog/item/6af913c7efb4211c9d163d1f.html
    推荐DBUTILES包,看看吧,很好很方便
      

  5.   

    没发现什么错误,建议你检查下是否执行了插入动作以及sql语句